From fd7aedccfb371e3cbd2870e039ea510fe4b00902 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Thu, 21 Mar 2024 14:13:02 +0700 Subject: [PATCH 01/28] fix --- src/openapi_python_generator/generate_data.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index 25be063..78f3f39 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -120,7 +120,10 @@ def write_data(data: ConversionResult, output: Union[str, Path]) -> None: ) # Create services.__init__.py file containing imports to all services. - write_code(services_path / "__init__.py", "") + write_code( + services_path / "__init__.py", + "\n".join([f"from .{file} import *" for file in files]), + ) # Write the api_config.py file. write_code(Path(output) / "api_config.py", data.api_config.content) From 88b74f6eb9be69b9c74bcbefabe2c4db8fd062d3 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Thu, 21 Mar 2024 14:18:52 +0700 Subject: [PATCH 02/28] update --- poetry.lock | 2504 ++++++++++++++++++++++-------------------------- pyproject.toml | 6 +- 2 files changed, 1165 insertions(+), 1345 deletions(-) diff --git a/poetry.lock b/poetry.lock index f2df45f..eb030a7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,121 +1,104 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "aiohttp" -version = "3.8.4" +version = "3.9.3" description = "Async http client/server framework (asyncio)" -category = "dev" optional = false -python-versions = ">=3.6" -files = [ - {file = "aiohttp-3.8.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5ce45967538fb747370308d3145aa68a074bdecb4f3a300869590f725ced69c1"}, - {file = "aiohttp-3.8.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b744c33b6f14ca26b7544e8d8aadff6b765a80ad6164fb1a430bbadd593dfb1a"}, - {file = "aiohttp-3.8.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a45865451439eb320784918617ba54b7a377e3501fb70402ab84d38c2cd891b"}, - {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a86d42d7cba1cec432d47ab13b6637bee393a10f664c425ea7b305d1301ca1a3"}, - {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee3c36df21b5714d49fc4580247947aa64bcbe2939d1b77b4c8dcb8f6c9faecc"}, - {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:176a64b24c0935869d5bbc4c96e82f89f643bcdf08ec947701b9dbb3c956b7dd"}, - {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c844fd628851c0bc309f3c801b3a3d58ce430b2ce5b359cd918a5a76d0b20cb5"}, - {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5393fb786a9e23e4799fec788e7e735de18052f83682ce2dfcabaf1c00c2c08e"}, - {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e4b09863aae0dc965c3ef36500d891a3ff495a2ea9ae9171e4519963c12ceefd"}, - {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:adfbc22e87365a6e564c804c58fc44ff7727deea782d175c33602737b7feadb6"}, - {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:147ae376f14b55f4f3c2b118b95be50a369b89b38a971e80a17c3fd623f280c9"}, - {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:eafb3e874816ebe2a92f5e155f17260034c8c341dad1df25672fb710627c6949"}, - {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c6cc15d58053c76eacac5fa9152d7d84b8d67b3fde92709195cb984cfb3475ea"}, - {file = "aiohttp-3.8.4-cp310-cp310-win32.whl", hash = "sha256:59f029a5f6e2d679296db7bee982bb3d20c088e52a2977e3175faf31d6fb75d1"}, - {file = "aiohttp-3.8.4-cp310-cp310-win_amd64.whl", hash = "sha256:fe7ba4a51f33ab275515f66b0a236bcde4fb5561498fe8f898d4e549b2e4509f"}, - {file = "aiohttp-3.8.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d8ef1a630519a26d6760bc695842579cb09e373c5f227a21b67dc3eb16cfea4"}, - {file = "aiohttp-3.8.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b3f2e06a512e94722886c0827bee9807c86a9f698fac6b3aee841fab49bbfb4"}, - {file = "aiohttp-3.8.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a80464982d41b1fbfe3154e440ba4904b71c1a53e9cd584098cd41efdb188ef"}, - {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b631e26df63e52f7cce0cce6507b7a7f1bc9b0c501fcde69742130b32e8782f"}, - {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f43255086fe25e36fd5ed8f2ee47477408a73ef00e804cb2b5cba4bf2ac7f5e"}, - {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d347a172f866cd1d93126d9b239fcbe682acb39b48ee0873c73c933dd23bd0f"}, - {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3fec6a4cb5551721cdd70473eb009d90935b4063acc5f40905d40ecfea23e05"}, - {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80a37fe8f7c1e6ce8f2d9c411676e4bc633a8462844e38f46156d07a7d401654"}, - {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d1e6a862b76f34395a985b3cd39a0d949ca80a70b6ebdea37d3ab39ceea6698a"}, - {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cd468460eefef601ece4428d3cf4562459157c0f6523db89365202c31b6daebb"}, - {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:618c901dd3aad4ace71dfa0f5e82e88b46ef57e3239fc7027773cb6d4ed53531"}, - {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:652b1bff4f15f6287550b4670546a2947f2a4575b6c6dff7760eafb22eacbf0b"}, - {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80575ba9377c5171407a06d0196b2310b679dc752d02a1fcaa2bc20b235dbf24"}, - {file = "aiohttp-3.8.4-cp311-cp311-win32.whl", hash = "sha256:bbcf1a76cf6f6dacf2c7f4d2ebd411438c275faa1dc0c68e46eb84eebd05dd7d"}, - {file = "aiohttp-3.8.4-cp311-cp311-win_amd64.whl", hash = "sha256:6e74dd54f7239fcffe07913ff8b964e28b712f09846e20de78676ce2a3dc0bfc"}, - {file = "aiohttp-3.8.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:880e15bb6dad90549b43f796b391cfffd7af373f4646784795e20d92606b7a51"}, - {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb96fa6b56bb536c42d6a4a87dfca570ff8e52de2d63cabebfd6fb67049c34b6"}, - {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a6cadebe132e90cefa77e45f2d2f1a4b2ce5c6b1bfc1656c1ddafcfe4ba8131"}, - {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f352b62b45dff37b55ddd7b9c0c8672c4dd2eb9c0f9c11d395075a84e2c40f75"}, - {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ab43061a0c81198d88f39aaf90dae9a7744620978f7ef3e3708339b8ed2ef01"}, - {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9cb1565a7ad52e096a6988e2ee0397f72fe056dadf75d17fa6b5aebaea05622"}, - {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:1b3ea7edd2d24538959c1c1abf97c744d879d4e541d38305f9bd7d9b10c9ec41"}, - {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:7c7837fe8037e96b6dd5cfcf47263c1620a9d332a87ec06a6ca4564e56bd0f36"}, - {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:3b90467ebc3d9fa5b0f9b6489dfb2c304a1db7b9946fa92aa76a831b9d587e99"}, - {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:cab9401de3ea52b4b4c6971db5fb5c999bd4260898af972bf23de1c6b5dd9d71"}, - {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d1f9282c5f2b5e241034a009779e7b2a1aa045f667ff521e7948ea9b56e0c5ff"}, - {file = "aiohttp-3.8.4-cp36-cp36m-win32.whl", hash = "sha256:5e14f25765a578a0a634d5f0cd1e2c3f53964553a00347998dfdf96b8137f777"}, - {file = "aiohttp-3.8.4-cp36-cp36m-win_amd64.whl", hash = "sha256:4c745b109057e7e5f1848c689ee4fb3a016c8d4d92da52b312f8a509f83aa05e"}, - {file = "aiohttp-3.8.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:aede4df4eeb926c8fa70de46c340a1bc2c6079e1c40ccf7b0eae1313ffd33519"}, - {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ddaae3f3d32fc2cb4c53fab020b69a05c8ab1f02e0e59665c6f7a0d3a5be54f"}, - {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4eb3b82ca349cf6fadcdc7abcc8b3a50ab74a62e9113ab7a8ebc268aad35bb9"}, - {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bcb89336efa095ea21b30f9e686763f2be4478f1b0a616969551982c4ee4c3b"}, - {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c08e8ed6fa3d477e501ec9db169bfac8140e830aa372d77e4a43084d8dd91ab"}, - {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c6cd05ea06daca6ad6a4ca3ba7fe7dc5b5de063ff4daec6170ec0f9979f6c332"}, - {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7a00a9ed8d6e725b55ef98b1b35c88013245f35f68b1b12c5cd4100dddac333"}, - {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:de04b491d0e5007ee1b63a309956eaed959a49f5bb4e84b26c8f5d49de140fa9"}, - {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:40653609b3bf50611356e6b6554e3a331f6879fa7116f3959b20e3528783e699"}, - {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dbf3a08a06b3f433013c143ebd72c15cac33d2914b8ea4bea7ac2c23578815d6"}, - {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:854f422ac44af92bfe172d8e73229c270dc09b96535e8a548f99c84f82dde241"}, - {file = "aiohttp-3.8.4-cp37-cp37m-win32.whl", hash = "sha256:aeb29c84bb53a84b1a81c6c09d24cf33bb8432cc5c39979021cc0f98c1292a1a"}, - {file = "aiohttp-3.8.4-cp37-cp37m-win_amd64.whl", hash = "sha256:db3fc6120bce9f446d13b1b834ea5b15341ca9ff3f335e4a951a6ead31105480"}, - {file = "aiohttp-3.8.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fabb87dd8850ef0f7fe2b366d44b77d7e6fa2ea87861ab3844da99291e81e60f"}, - {file = "aiohttp-3.8.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91f6d540163f90bbaef9387e65f18f73ffd7c79f5225ac3d3f61df7b0d01ad15"}, - {file = "aiohttp-3.8.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d265f09a75a79a788237d7f9054f929ced2e69eb0bb79de3798c468d8a90f945"}, - {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d89efa095ca7d442a6d0cbc755f9e08190ba40069b235c9886a8763b03785da"}, - {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4dac314662f4e2aa5009977b652d9b8db7121b46c38f2073bfeed9f4049732cd"}, - {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe11310ae1e4cd560035598c3f29d86cef39a83d244c7466f95c27ae04850f10"}, - {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ddb2a2026c3f6a68c3998a6c47ab6795e4127315d2e35a09997da21865757f8"}, - {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e75b89ac3bd27d2d043b234aa7b734c38ba1b0e43f07787130a0ecac1e12228a"}, - {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6e601588f2b502c93c30cd5a45bfc665faaf37bbe835b7cfd461753068232074"}, - {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a5d794d1ae64e7753e405ba58e08fcfa73e3fad93ef9b7e31112ef3c9a0efb52"}, - {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a1f4689c9a1462f3df0a1f7e797791cd6b124ddbee2b570d34e7f38ade0e2c71"}, - {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3032dcb1c35bc330134a5b8a5d4f68c1a87252dfc6e1262c65a7e30e62298275"}, - {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8189c56eb0ddbb95bfadb8f60ea1b22fcfa659396ea36f6adcc521213cd7b44d"}, - {file = "aiohttp-3.8.4-cp38-cp38-win32.whl", hash = "sha256:33587f26dcee66efb2fff3c177547bd0449ab7edf1b73a7f5dea1e38609a0c54"}, - {file = "aiohttp-3.8.4-cp38-cp38-win_amd64.whl", hash = "sha256:e595432ac259af2d4630008bf638873d69346372d38255774c0e286951e8b79f"}, - {file = "aiohttp-3.8.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5a7bdf9e57126dc345b683c3632e8ba317c31d2a41acd5800c10640387d193ed"}, - {file = "aiohttp-3.8.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:22f6eab15b6db242499a16de87939a342f5a950ad0abaf1532038e2ce7d31567"}, - {file = "aiohttp-3.8.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7235604476a76ef249bd64cb8274ed24ccf6995c4a8b51a237005ee7a57e8643"}, - {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea9eb976ffdd79d0e893869cfe179a8f60f152d42cb64622fca418cd9b18dc2a"}, - {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92c0cea74a2a81c4c76b62ea1cac163ecb20fb3ba3a75c909b9fa71b4ad493cf"}, - {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493f5bc2f8307286b7799c6d899d388bbaa7dfa6c4caf4f97ef7521b9cb13719"}, - {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a63f03189a6fa7c900226e3ef5ba4d3bd047e18f445e69adbd65af433add5a2"}, - {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10c8cefcff98fd9168cdd86c4da8b84baaa90bf2da2269c6161984e6737bf23e"}, - {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bca5f24726e2919de94f047739d0a4fc01372801a3672708260546aa2601bf57"}, - {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:03baa76b730e4e15a45f81dfe29a8d910314143414e528737f8589ec60cf7391"}, - {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:8c29c77cc57e40f84acef9bfb904373a4e89a4e8b74e71aa8075c021ec9078c2"}, - {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:03543dcf98a6619254b409be2d22b51f21ec66272be4ebda7b04e6412e4b2e14"}, - {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:17b79c2963db82086229012cff93ea55196ed31f6493bb1ccd2c62f1724324e4"}, - {file = "aiohttp-3.8.4-cp39-cp39-win32.whl", hash = "sha256:34ce9f93a4a68d1272d26030655dd1b58ff727b3ed2a33d80ec433561b03d67a"}, - {file = "aiohttp-3.8.4-cp39-cp39-win_amd64.whl", hash = "sha256:41a86a69bb63bb2fc3dc9ad5ea9f10f1c9c8e282b471931be0268ddd09430b04"}, - {file = "aiohttp-3.8.4.tar.gz", hash = "sha256:bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"}, +python-versions = ">=3.8" +files = [ + {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:939677b61f9d72a4fa2a042a5eee2a99a24001a67c13da113b2e30396567db54"}, + {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f5cd333fcf7590a18334c90f8c9147c837a6ec8a178e88d90a9b96ea03194cc"}, + {file = "aiohttp-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82e6aa28dd46374f72093eda8bcd142f7771ee1eb9d1e223ff0fa7177a96b4a5"}, + {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f56455b0c2c7cc3b0c584815264461d07b177f903a04481dfc33e08a89f0c26b"}, + {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bca77a198bb6e69795ef2f09a5f4c12758487f83f33d63acde5f0d4919815768"}, + {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e083c285857b78ee21a96ba1eb1b5339733c3563f72980728ca2b08b53826ca5"}, + {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab40e6251c3873d86ea9b30a1ac6d7478c09277b32e14745d0d3c6e76e3c7e29"}, + {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df822ee7feaaeffb99c1a9e5e608800bd8eda6e5f18f5cfb0dc7eeb2eaa6bbec"}, + {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:acef0899fea7492145d2bbaaaec7b345c87753168589cc7faf0afec9afe9b747"}, + {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cd73265a9e5ea618014802ab01babf1940cecb90c9762d8b9e7d2cc1e1969ec6"}, + {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a78ed8a53a1221393d9637c01870248a6f4ea5b214a59a92a36f18151739452c"}, + {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6b0e029353361f1746bac2e4cc19b32f972ec03f0f943b390c4ab3371840aabf"}, + {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7cf5c9458e1e90e3c390c2639f1017a0379a99a94fdfad3a1fd966a2874bba52"}, + {file = "aiohttp-3.9.3-cp310-cp310-win32.whl", hash = "sha256:3e59c23c52765951b69ec45ddbbc9403a8761ee6f57253250c6e1536cacc758b"}, + {file = "aiohttp-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:055ce4f74b82551678291473f66dc9fb9048a50d8324278751926ff0ae7715e5"}, + {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6b88f9386ff1ad91ace19d2a1c0225896e28815ee09fc6a8932fded8cda97c3d"}, + {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c46956ed82961e31557b6857a5ca153c67e5476972e5f7190015018760938da2"}, + {file = "aiohttp-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:07b837ef0d2f252f96009e9b8435ec1fef68ef8b1461933253d318748ec1acdc"}, + {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad46e6f620574b3b4801c68255492e0159d1712271cc99d8bdf35f2043ec266"}, + {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ed3e046ea7b14938112ccd53d91c1539af3e6679b222f9469981e3dac7ba1ce"}, + {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:039df344b45ae0b34ac885ab5b53940b174530d4dd8a14ed8b0e2155b9dddccb"}, + {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7943c414d3a8d9235f5f15c22ace69787c140c80b718dcd57caaade95f7cd93b"}, + {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84871a243359bb42c12728f04d181a389718710129b36b6aad0fc4655a7647d4"}, + {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5eafe2c065df5401ba06821b9a054d9cb2848867f3c59801b5d07a0be3a380ae"}, + {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9d3c9b50f19704552f23b4eaea1fc082fdd82c63429a6506446cbd8737823da3"}, + {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:f033d80bc6283092613882dfe40419c6a6a1527e04fc69350e87a9df02bbc283"}, + {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2c895a656dd7e061b2fd6bb77d971cc38f2afc277229ce7dd3552de8313a483e"}, + {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f5a71d25cd8106eab05f8704cd9167b6e5187bcdf8f090a66c6d88b634802b4"}, + {file = "aiohttp-3.9.3-cp311-cp311-win32.whl", hash = "sha256:50fca156d718f8ced687a373f9e140c1bb765ca16e3d6f4fe116e3df7c05b2c5"}, + {file = "aiohttp-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:5fe9ce6c09668063b8447f85d43b8d1c4e5d3d7e92c63173e6180b2ac5d46dd8"}, + {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:38a19bc3b686ad55804ae931012f78f7a534cce165d089a2059f658f6c91fa60"}, + {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:770d015888c2a598b377bd2f663adfd947d78c0124cfe7b959e1ef39f5b13869"}, + {file = "aiohttp-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee43080e75fc92bf36219926c8e6de497f9b247301bbf88c5c7593d931426679"}, + {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52df73f14ed99cee84865b95a3d9e044f226320a87af208f068ecc33e0c35b96"}, + {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc9b311743a78043b26ffaeeb9715dc360335e5517832f5a8e339f8a43581e4d"}, + {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b955ed993491f1a5da7f92e98d5dad3c1e14dc175f74517c4e610b1f2456fb11"}, + {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:504b6981675ace64c28bf4a05a508af5cde526e36492c98916127f5a02354d53"}, + {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6fe5571784af92b6bc2fda8d1925cccdf24642d49546d3144948a6a1ed58ca5"}, + {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ba39e9c8627edc56544c8628cc180d88605df3892beeb2b94c9bc857774848ca"}, + {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e5e46b578c0e9db71d04c4b506a2121c0cb371dd89af17a0586ff6769d4c58c1"}, + {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:938a9653e1e0c592053f815f7028e41a3062e902095e5a7dc84617c87267ebd5"}, + {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:c3452ea726c76e92f3b9fae4b34a151981a9ec0a4847a627c43d71a15ac32aa6"}, + {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ff30218887e62209942f91ac1be902cc80cddb86bf00fbc6783b7a43b2bea26f"}, + {file = "aiohttp-3.9.3-cp312-cp312-win32.whl", hash = "sha256:38f307b41e0bea3294a9a2a87833191e4bcf89bb0365e83a8be3a58b31fb7f38"}, + {file = "aiohttp-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:b791a3143681a520c0a17e26ae7465f1b6f99461a28019d1a2f425236e6eedb5"}, + {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ed621426d961df79aa3b963ac7af0d40392956ffa9be022024cd16297b30c8c"}, + {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7f46acd6a194287b7e41e87957bfe2ad1ad88318d447caf5b090012f2c5bb528"}, + {file = "aiohttp-3.9.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feeb18a801aacb098220e2c3eea59a512362eb408d4afd0c242044c33ad6d542"}, + {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f734e38fd8666f53da904c52a23ce517f1b07722118d750405af7e4123933511"}, + {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b40670ec7e2156d8e57f70aec34a7216407848dfe6c693ef131ddf6e76feb672"}, + {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdd215b7b7fd4a53994f238d0f46b7ba4ac4c0adb12452beee724ddd0743ae5d"}, + {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:017a21b0df49039c8f46ca0971b3a7fdc1f56741ab1240cb90ca408049766168"}, + {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99abf0bba688259a496f966211c49a514e65afa9b3073a1fcee08856e04425b"}, + {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:648056db9a9fa565d3fa851880f99f45e3f9a771dd3ff3bb0c048ea83fb28194"}, + {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8aacb477dc26797ee089721536a292a664846489c49d3ef9725f992449eda5a8"}, + {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:522a11c934ea660ff8953eda090dcd2154d367dec1ae3c540aff9f8a5c109ab4"}, + {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5bce0dc147ca85caa5d33debc4f4d65e8e8b5c97c7f9f660f215fa74fc49a321"}, + {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b4af9f25b49a7be47c0972139e59ec0e8285c371049df1a63b6ca81fdd216a2"}, + {file = "aiohttp-3.9.3-cp38-cp38-win32.whl", hash = "sha256:298abd678033b8571995650ccee753d9458dfa0377be4dba91e4491da3f2be63"}, + {file = "aiohttp-3.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:69361bfdca5468c0488d7017b9b1e5ce769d40b46a9f4a2eed26b78619e9396c"}, + {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0fa43c32d1643f518491d9d3a730f85f5bbaedcbd7fbcae27435bb8b7a061b29"}, + {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:835a55b7ca49468aaaac0b217092dfdff370e6c215c9224c52f30daaa735c1c1"}, + {file = "aiohttp-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06a9b2c8837d9a94fae16c6223acc14b4dfdff216ab9b7202e07a9a09541168f"}, + {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abf151955990d23f84205286938796c55ff11bbfb4ccfada8c9c83ae6b3c89a3"}, + {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59c26c95975f26e662ca78fdf543d4eeaef70e533a672b4113dd888bd2423caa"}, + {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f95511dd5d0e05fd9728bac4096319f80615aaef4acbecb35a990afebe953b0e"}, + {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:595f105710293e76b9dc09f52e0dd896bd064a79346234b521f6b968ffdd8e58"}, + {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7c8b816c2b5af5c8a436df44ca08258fc1a13b449393a91484225fcb7545533"}, + {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f1088fa100bf46e7b398ffd9904f4808a0612e1d966b4aa43baa535d1b6341eb"}, + {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f59dfe57bb1ec82ac0698ebfcdb7bcd0e99c255bd637ff613760d5f33e7c81b3"}, + {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:361a1026c9dd4aba0109e4040e2aecf9884f5cfe1b1b1bd3d09419c205e2e53d"}, + {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:363afe77cfcbe3a36353d8ea133e904b108feea505aa4792dad6585a8192c55a"}, + {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e2c45c208c62e955e8256949eb225bd8b66a4c9b6865729a786f2aa79b72e9d"}, + {file = "aiohttp-3.9.3-cp39-cp39-win32.whl", hash = "sha256:f7217af2e14da0856e082e96ff637f14ae45c10a5714b63c77f26d8884cf1051"}, + {file = "aiohttp-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:27468897f628c627230dba07ec65dc8d0db566923c48f29e084ce382119802bc"}, + {file = "aiohttp-3.9.3.tar.gz", hash = "sha256:90842933e5d1ff760fae6caca4b2b3edba53ba8f4b71e95dacf2818a2aca06f7"}, ] [package.dependencies] aiosignal = ">=1.1.2" -async-timeout = ">=4.0.0a3,<5.0" -asynctest = {version = "0.13.0", markers = "python_version < \"3.8\""} attrs = ">=17.3.0" -charset-normalizer = ">=2.0,<4.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" -typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} yarl = ">=1.0,<2.0" [package.extras] -speedups = ["Brotli", "aiodns", "cchardet"] +speedups = ["Brotli", "aiodns", "brotlicffi"] [[package]] name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -128,321 +111,307 @@ frozenlist = ">=1.1.0" [[package]] name = "alabaster" -version = "0.7.13" -description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" +version = "0.7.16" +description = "A light, configurable Sphinx theme" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] [[package]] -name = "anyio" -version = "3.6.2" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" +name = "annotated-types" +version = "0.6.0" +description = "Reusable constraint types to use with typing.Annotated" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.8" files = [ - {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, - {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, ] -[package.dependencies] -idna = ">=2.8" -sniffio = ">=1.1" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} - -[package.extras] -doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] -trio = ["trio (>=0.16,<0.22)"] - [[package]] -name = "async-timeout" -version = "4.0.2" -description = "Timeout context manager for asyncio programs" -category = "dev" +name = "anyio" +version = "4.3.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, - {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, ] [package.dependencies] -typing-extensions = {version = ">=3.6.5", markers = "python_version < \"3.8\""} +idna = ">=2.8" +sniffio = ">=1.1" -[[package]] -name = "asynctest" -version = "0.13.0" -description = "Enhance the standard unittest package with features for testing asyncio libraries" -category = "dev" -optional = false -python-versions = ">=3.5" -files = [ - {file = "asynctest-0.13.0-py3-none-any.whl", hash = "sha256:5da6118a7e6d6b54d83a8f7197769d046922a44d2a99c21382f0a6e4fadae676"}, - {file = "asynctest-0.13.0.tar.gz", hash = "sha256:c27862842d15d83e6a34eb0b2866c323880eb3a75e4485b079ea11748fd77fac"}, -] +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] [[package]] name = "attrs" -version = "22.2.0" +version = "23.2.0" description = "Classes Without Boilerplate" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] [package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] [[package]] name = "babel" -version = "2.12.1" +version = "2.14.0" description = "Internationalization utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "bandit" -version = "1.7.4" +version = "1.7.8" description = "Security oriented static analyser for python code." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, - {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, + {file = "bandit-1.7.8-py3-none-any.whl", hash = "sha256:509f7af645bc0cd8fd4587abc1a038fc795636671ee8204d502b933aee44f381"}, + {file = "bandit-1.7.8.tar.gz", hash = "sha256:36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"}, ] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -GitPython = ">=1.0.1" PyYAML = ">=5.3.1" +rich = "*" stevedore = ">=1.20.0" [package.extras] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml"] -toml = ["toml"] +baseline = ["GitPython (>=3.1.30)"] +sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] +toml = ["tomli (>=1.1.0)"] yaml = ["PyYAML"] [[package]] name = "beautifulsoup4" -version = "4.11.2" +version = "4.12.3" description = "Screen-scraping library" -category = "dev" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.11.2-py3-none-any.whl", hash = "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39"}, - {file = "beautifulsoup4-4.11.2.tar.gz", hash = "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"}, + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, ] [package.dependencies] soupsieve = ">1.2" [package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] html5lib = ["html5lib"] lxml = ["lxml"] [[package]] name = "black" -version = "22.12.0" +version = "24.3.0" description = "The uncompromising code formatter." -category = "main" optional = false -python-versions = ">=3.7" -files = [ - {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, - {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, - {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, - {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, - {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, - {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, - {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, - {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, - {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, - {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, - {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, - {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, +python-versions = ">=3.8" +files = [ + {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, + {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, + {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, + {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, + {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"}, + {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"}, + {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"}, + {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"}, + {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"}, + {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"}, + {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"}, + {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"}, + {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"}, + {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"}, + {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"}, + {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"}, + {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, + {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, + {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, + {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, + {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, + {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, ] [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" +packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2022.12.7" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] name = "cfgv" -version = "3.3.1" +version = "3.4.0" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" files = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] [[package]] name = "charset-normalizer" -version = "3.0.1" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.0.1.tar.gz", hash = "sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-win32.whl", hash = "sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-win32.whl", hash = "sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-win32.whl", hash = "sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-win32.whl", hash = "sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-win32.whl", hash = "sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-win32.whl", hash = "sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59"}, - {file = "charset_normalizer-3.0.1-py3-none-any.whl", hash = "sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -454,7 +423,6 @@ files = [ name = "coverage" version = "6.5.0" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -510,9 +478,6 @@ files = [ {file = "coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84"}, ] -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - [package.extras] toml = ["tomli"] @@ -520,7 +485,6 @@ toml = ["tomli"] name = "darglint" version = "1.8.1" description = "A utility for ensuring Google-style docstrings stay up to date with the source code." -category = "dev" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -530,124 +494,99 @@ files = [ [[package]] name = "distlib" -version = "0.3.6" +version = "0.3.8" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] [[package]] name = "docutils" -version = "0.17.1" +version = "0.20.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" files = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, ] [[package]] name = "dparse" -version = "0.6.2" +version = "0.6.3" description = "A parser for Python dependency files" -category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "dparse-0.6.2-py3-none-any.whl", hash = "sha256:8097076f1dd26c377f30d4745e6ec18fef42f3bf493933b842ac5bafad8c345f"}, - {file = "dparse-0.6.2.tar.gz", hash = "sha256:d45255bda21f998bc7ddf2afd5e62505ba6134756ba2d42a84c56b0826614dfe"}, + {file = "dparse-0.6.3-py3-none-any.whl", hash = "sha256:0d8fe18714056ca632d98b24fbfc4e9791d4e47065285ab486182288813a5318"}, + {file = "dparse-0.6.3.tar.gz", hash = "sha256:27bb8b4bcaefec3997697ba3f6e06b2447200ba273c0b085c3d012a04571b528"}, ] [package.dependencies] packaging = "*" -toml = "*" [package.extras] conda = ["pyyaml"] -pipenv = ["pipenv"] - -[[package]] -name = "exceptiongroup" -version = "1.1.0" -description = "Backport of PEP 654 (exception groups)" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"}, - {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"}, -] - -[package.extras] -test = ["pytest (>=6)"] +pipenv = ["pipenv (<=2022.12.19)"] [[package]] name = "fastapi" -version = "0.78.0" +version = "0.109.2" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" -category = "dev" optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" files = [ - {file = "fastapi-0.78.0-py3-none-any.whl", hash = "sha256:15fcabd5c78c266fa7ae7d8de9b384bfc2375ee0503463a6febbe3bab69d6f65"}, - {file = "fastapi-0.78.0.tar.gz", hash = "sha256:3233d4a789ba018578658e2af1a4bb5e38bdd122ff722b313666a9b2c6786a83"}, + {file = "fastapi-0.109.2-py3-none-any.whl", hash = "sha256:2c9bab24667293b501cad8dd388c05240c850b58ec5876ee3283c47d6e1e3a4d"}, + {file = "fastapi-0.109.2.tar.gz", hash = "sha256:f3817eac96fe4f65a2ebb4baa000f394e55f5fccdaf7f75250804bc58f354f73"}, ] [package.dependencies] -pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0" -starlette = "0.19.1" +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.36.3,<0.37.0" +typing-extensions = ">=4.8.0" [package.extras] -all = ["email_validator (>=1.1.1,<2.0.0)", "itsdangerous (>=1.1.0,<3.0.0)", "jinja2 (>=2.11.2,<4.0.0)", "orjson (>=3.2.1,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "pyyaml (>=5.3.1,<7.0.0)", "requests (>=2.24.0,<3.0.0)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)", "uvicorn[standard] (>=0.12.0,<0.18.0)"] -dev = ["autoflake (>=1.4.0,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "pre-commit (>=2.17.0,<3.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "uvicorn[standard] (>=0.12.0,<0.18.0)"] -doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer (>=0.4.1,<0.5.0)"] -test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==22.3.0)", "databases[sqlite] (>=0.3.2,<0.6.0)", "email_validator (>=1.1.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.14.0,<0.19.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "orjson (>=3.2.1,<4.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=6.2.4,<7.0.0)", "pytest-cov (>=2.12.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "requests (>=2.24.0,<3.0.0)", "sqlalchemy (>=1.3.18,<1.5.0)", "types-dataclasses (==0.6.5)", "types-orjson (==3.6.2)", "types-ujson (==4.2.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] +all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] [[package]] name = "filelock" -version = "3.9.0" +version = "3.13.1" description = "A platform independent file lock." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "filelock-3.9.0-py3-none-any.whl", hash = "sha256:f58d535af89bb9ad5cd4df046f741f8553a418c01a7856bf0d173bbc9f6bd16d"}, - {file = "filelock-3.9.0.tar.gz", hash = "sha256:7b319f24340b51f55a2bf7a12ac0755a9b03e718311dac567a0f4f7fabd2f5de"}, + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, ] [package.extras] -docs = ["furo (>=2022.12.7)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"] -testing = ["covdefaults (>=2.2.2)", "coverage (>=7.0.1)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flake8" -version = "5.0.4" +version = "7.0.0" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8.1" files = [ - {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, - {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, + {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, + {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, ] [package.dependencies] -importlib-metadata = {version = ">=1.1.0,<4.3", markers = "python_version < \"3.8\""} mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.9.0,<2.10.0" -pyflakes = ">=2.5.0,<2.6.0" +pycodestyle = ">=2.11.0,<2.12.0" +pyflakes = ">=3.2.0,<3.3.0" [[package]] name = "flake8-bandit" version = "4.1.1" description = "Automated security testing with bandit and flake8." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -661,19 +600,18 @@ flake8 = ">=5.0.0" [[package]] name = "flake8-bugbear" -version = "23.2.13" +version = "24.2.6" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8.1" files = [ - {file = "flake8-bugbear-23.2.13.tar.gz", hash = "sha256:39259814a83f33c8409417ee12dd4050c9c0bb4c8707c12fc18ae62b2f3ddee1"}, - {file = "flake8_bugbear-23.2.13-py3-none-any.whl", hash = "sha256:f136bd0ca2684f101168bba2310dec541e11aa6b252260c17dcf58d18069a740"}, + {file = "flake8-bugbear-24.2.6.tar.gz", hash = "sha256:f9cb5f2a9e792dd80ff68e89a14c12eed8620af8b41a49d823b7a33064ac9658"}, + {file = "flake8_bugbear-24.2.6-py3-none-any.whl", hash = "sha256:663ef5de80cd32aacd39d362212983bc4636435a6f83700b4ed35acbd0b7d1b8"}, ] [package.dependencies] attrs = ">=19.2.0" -flake8 = ">=3.0.0" +flake8 = ">=6.0.0" [package.extras] dev = ["coverage", "hypothesis", "hypothesmith (>=0.2)", "pre-commit", "pytest", "tox"] @@ -682,7 +620,6 @@ dev = ["coverage", "hypothesis", "hypothesmith (>=0.2)", "pre-commit", "pytest", name = "flake8-docstrings" version = "1.7.0" description = "Extension for flake8 which uses pydocstyle to check docstrings" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -698,7 +635,6 @@ pydocstyle = ">=2.1" name = "flake8-rst-docstrings" version = "0.3.0" description = "Python docstring reStructuredText (RST) validator for flake8" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -716,142 +652,111 @@ develop = ["build", "twine"] [[package]] name = "frozenlist" -version = "1.3.3" +version = "1.4.1" description = "A list-like structure which implements collections.abc.MutableSequence" -category = "dev" optional = false -python-versions = ">=3.7" -files = [ - {file = "frozenlist-1.3.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff8bf625fe85e119553b5383ba0fb6aa3d0ec2ae980295aaefa552374926b3f4"}, - {file = "frozenlist-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dfbac4c2dfcc082fcf8d942d1e49b6aa0766c19d3358bd86e2000bf0fa4a9cf0"}, - {file = "frozenlist-1.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b1c63e8d377d039ac769cd0926558bb7068a1f7abb0f003e3717ee003ad85530"}, - {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fdfc24dcfce5b48109867c13b4cb15e4660e7bd7661741a391f821f23dfdca7"}, - {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c926450857408e42f0bbc295e84395722ce74bae69a3b2aa2a65fe22cb14b99"}, - {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1841e200fdafc3d51f974d9d377c079a0694a8f06de2e67b48150328d66d5483"}, - {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f470c92737afa7d4c3aacc001e335062d582053d4dbe73cda126f2d7031068dd"}, - {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:783263a4eaad7c49983fe4b2e7b53fa9770c136c270d2d4bbb6d2192bf4d9caf"}, - {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:924620eef691990dfb56dc4709f280f40baee568c794b5c1885800c3ecc69816"}, - {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ae4dc05c465a08a866b7a1baf360747078b362e6a6dbeb0c57f234db0ef88ae0"}, - {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:bed331fe18f58d844d39ceb398b77d6ac0b010d571cba8267c2e7165806b00ce"}, - {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:02c9ac843e3390826a265e331105efeab489ffaf4dd86384595ee8ce6d35ae7f"}, - {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9545a33965d0d377b0bc823dcabf26980e77f1b6a7caa368a365a9497fb09420"}, - {file = "frozenlist-1.3.3-cp310-cp310-win32.whl", hash = "sha256:d5cd3ab21acbdb414bb6c31958d7b06b85eeb40f66463c264a9b343a4e238642"}, - {file = "frozenlist-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:b756072364347cb6aa5b60f9bc18e94b2f79632de3b0190253ad770c5df17db1"}, - {file = "frozenlist-1.3.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b4395e2f8d83fbe0c627b2b696acce67868793d7d9750e90e39592b3626691b7"}, - {file = "frozenlist-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14143ae966a6229350021384870458e4777d1eae4c28d1a7aa47f24d030e6678"}, - {file = "frozenlist-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d8860749e813a6f65bad8285a0520607c9500caa23fea6ee407e63debcdbef6"}, - {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23d16d9f477bb55b6154654e0e74557040575d9d19fe78a161bd33d7d76808e8"}, - {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb82dbba47a8318e75f679690190c10a5e1f447fbf9df41cbc4c3afd726d88cb"}, - {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9309869032abb23d196cb4e4db574232abe8b8be1339026f489eeb34a4acfd91"}, - {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a97b4fe50b5890d36300820abd305694cb865ddb7885049587a5678215782a6b"}, - {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c188512b43542b1e91cadc3c6c915a82a5eb95929134faf7fd109f14f9892ce4"}, - {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:303e04d422e9b911a09ad499b0368dc551e8c3cd15293c99160c7f1f07b59a48"}, - {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0771aed7f596c7d73444c847a1c16288937ef988dc04fb9f7be4b2aa91db609d"}, - {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:66080ec69883597e4d026f2f71a231a1ee9887835902dbe6b6467d5a89216cf6"}, - {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:41fe21dc74ad3a779c3d73a2786bdf622ea81234bdd4faf90b8b03cad0c2c0b4"}, - {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f20380df709d91525e4bee04746ba612a4df0972c1b8f8e1e8af997e678c7b81"}, - {file = "frozenlist-1.3.3-cp311-cp311-win32.whl", hash = "sha256:f30f1928162e189091cf4d9da2eac617bfe78ef907a761614ff577ef4edfb3c8"}, - {file = "frozenlist-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:a6394d7dadd3cfe3f4b3b186e54d5d8504d44f2d58dcc89d693698e8b7132b32"}, - {file = "frozenlist-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8df3de3a9ab8325f94f646609a66cbeeede263910c5c0de0101079ad541af332"}, - {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0693c609e9742c66ba4870bcee1ad5ff35462d5ffec18710b4ac89337ff16e27"}, - {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd4210baef299717db0a600d7a3cac81d46ef0e007f88c9335db79f8979c0d3d"}, - {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:394c9c242113bfb4b9aa36e2b80a05ffa163a30691c7b5a29eba82e937895d5e"}, - {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6327eb8e419f7d9c38f333cde41b9ae348bec26d840927332f17e887a8dcb70d"}, - {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e24900aa13212e75e5b366cb9065e78bbf3893d4baab6052d1aca10d46d944c"}, - {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3843f84a6c465a36559161e6c59dce2f2ac10943040c2fd021cfb70d58c4ad56"}, - {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:84610c1502b2461255b4c9b7d5e9c48052601a8957cd0aea6ec7a7a1e1fb9420"}, - {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:c21b9aa40e08e4f63a2f92ff3748e6b6c84d717d033c7b3438dd3123ee18f70e"}, - {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:efce6ae830831ab6a22b9b4091d411698145cb9b8fc869e1397ccf4b4b6455cb"}, - {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:40de71985e9042ca00b7953c4f41eabc3dc514a2d1ff534027f091bc74416401"}, - {file = "frozenlist-1.3.3-cp37-cp37m-win32.whl", hash = "sha256:180c00c66bde6146a860cbb81b54ee0df350d2daf13ca85b275123bbf85de18a"}, - {file = "frozenlist-1.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9bbbcedd75acdfecf2159663b87f1bb5cfc80e7cd99f7ddd9d66eb98b14a8411"}, - {file = "frozenlist-1.3.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:034a5c08d36649591be1cbb10e09da9f531034acfe29275fc5454a3b101ce41a"}, - {file = "frozenlist-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba64dc2b3b7b158c6660d49cdb1d872d1d0bf4e42043ad8d5006099479a194e5"}, - {file = "frozenlist-1.3.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:47df36a9fe24054b950bbc2db630d508cca3aa27ed0566c0baf661225e52c18e"}, - {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:008a054b75d77c995ea26629ab3a0c0d7281341f2fa7e1e85fa6153ae29ae99c"}, - {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:841ea19b43d438a80b4de62ac6ab21cfe6827bb8a9dc62b896acc88eaf9cecba"}, - {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e235688f42b36be2b6b06fc37ac2126a73b75fb8d6bc66dd632aa35286238703"}, - {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca713d4af15bae6e5d79b15c10c8522859a9a89d3b361a50b817c98c2fb402a2"}, - {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ac5995f2b408017b0be26d4a1d7c61bce106ff3d9e3324374d66b5964325448"}, - {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4ae8135b11652b08a8baf07631d3ebfe65a4c87909dbef5fa0cdde440444ee4"}, - {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4ea42116ceb6bb16dbb7d526e242cb6747b08b7710d9782aa3d6732bd8d27649"}, - {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:810860bb4bdce7557bc0febb84bbd88198b9dbc2022d8eebe5b3590b2ad6c842"}, - {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ee78feb9d293c323b59a6f2dd441b63339a30edf35abcb51187d2fc26e696d13"}, - {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0af2e7c87d35b38732e810befb9d797a99279cbb85374d42ea61c1e9d23094b3"}, - {file = "frozenlist-1.3.3-cp38-cp38-win32.whl", hash = "sha256:899c5e1928eec13fd6f6d8dc51be23f0d09c5281e40d9cf4273d188d9feeaf9b"}, - {file = "frozenlist-1.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:7f44e24fa70f6fbc74aeec3e971f60a14dde85da364aa87f15d1be94ae75aeef"}, - {file = "frozenlist-1.3.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2b07ae0c1edaa0a36339ec6cce700f51b14a3fc6545fdd32930d2c83917332cf"}, - {file = "frozenlist-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ebb86518203e12e96af765ee89034a1dbb0c3c65052d1b0c19bbbd6af8a145e1"}, - {file = "frozenlist-1.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5cf820485f1b4c91e0417ea0afd41ce5cf5965011b3c22c400f6d144296ccbc0"}, - {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c11e43016b9024240212d2a65043b70ed8dfd3b52678a1271972702d990ac6d"}, - {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8fa3c6e3305aa1146b59a09b32b2e04074945ffcfb2f0931836d103a2c38f936"}, - {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:352bd4c8c72d508778cf05ab491f6ef36149f4d0cb3c56b1b4302852255d05d5"}, - {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65a5e4d3aa679610ac6e3569e865425b23b372277f89b5ef06cf2cdaf1ebf22b"}, - {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e2c1185858d7e10ff045c496bbf90ae752c28b365fef2c09cf0fa309291669"}, - {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f163d2fd041c630fed01bc48d28c3ed4a3b003c00acd396900e11ee5316b56bb"}, - {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:05cdb16d09a0832eedf770cb7bd1fe57d8cf4eaf5aced29c4e41e3f20b30a784"}, - {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:8bae29d60768bfa8fb92244b74502b18fae55a80eac13c88eb0b496d4268fd2d"}, - {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eedab4c310c0299961ac285591acd53dc6723a1ebd90a57207c71f6e0c2153ab"}, - {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3bbdf44855ed8f0fbcd102ef05ec3012d6a4fd7c7562403f76ce6a52aeffb2b1"}, - {file = "frozenlist-1.3.3-cp39-cp39-win32.whl", hash = "sha256:efa568b885bca461f7c7b9e032655c0c143d305bf01c30caf6db2854a4532b38"}, - {file = "frozenlist-1.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfe33efc9cb900a4c46f91a5ceba26d6df370ffddd9ca386eb1d4f0ad97b9ea9"}, - {file = "frozenlist-1.3.3.tar.gz", hash = "sha256:58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"}, +python-versions = ">=3.8" +files = [ + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, + {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, + {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, + {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, + {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, + {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, + {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, + {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, + {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, + {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, + {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, + {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, + {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, ] [[package]] name = "furo" -version = "2022.9.29" +version = "2024.1.29" description = "A clean customisable Sphinx documentation theme." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "furo-2022.9.29-py3-none-any.whl", hash = "sha256:559ee17999c0f52728481dcf6b1b0cf8c9743e68c5e3a18cb45a7992747869a9"}, - {file = "furo-2022.9.29.tar.gz", hash = "sha256:d4238145629c623609c2deb5384f8d036e2a1ee2a101d64b67b4348112470dbd"}, + {file = "furo-2024.1.29-py3-none-any.whl", hash = "sha256:3548be2cef45a32f8cdc0272d415fcb3e5fa6a0eb4ddfe21df3ecf1fe45a13cf"}, + {file = "furo-2024.1.29.tar.gz", hash = "sha256:4d6b2fe3f10a6e36eb9cc24c1e7beb38d7a23fc7b3c382867503b7fcac8a1e02"}, ] [package.dependencies] beautifulsoup4 = "*" pygments = ">=2.7" -sphinx = ">=4.0,<6.0" +sphinx = ">=6.0,<8.0" sphinx-basic-ng = "*" -[[package]] -name = "gitdb" -version = "4.0.10" -description = "Git Object Database" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, - {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.31" -description = "GitPython is a Python library used to interact with Git repositories" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.31-py3-none-any.whl", hash = "sha256:f04893614f6aa713a60cbbe1e6a97403ef633103cdd0ef5eb6efe0deb98dbe8d"}, - {file = "GitPython-3.1.31.tar.gz", hash = "sha256:8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" -typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.8\""} - [[package]] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -859,14 +764,10 @@ files = [ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, ] -[package.dependencies] -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} - [[package]] name = "httpcore" version = "0.16.3" description = "A minimal low-level HTTP client." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -878,17 +779,16 @@ files = [ anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = ">=1.0.0,<2.0.0" +sniffio = "==1.*" [package.extras] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] [[package]] name = "httpx" version = "0.23.3" description = "The next generation HTTP client." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -904,20 +804,19 @@ sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<13)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] [[package]] name = "identify" -version = "2.5.18" +version = "2.5.35" description = "File identification library for Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "identify-2.5.18-py2.py3-none-any.whl", hash = "sha256:93aac7ecf2f6abf879b8f29a8002d3c6de7086b8c28d88e1ad15045a15ab63f9"}, - {file = "identify-2.5.18.tar.gz", hash = "sha256:89e144fa560cc4cffb6ef2ab5e9fb18ed9f9b3cb054384bab4b95c12f6c309fe"}, + {file = "identify-2.5.35-py2.py3-none-any.whl", hash = "sha256:c4de0081837b211594f8e877a6b4fad7ca32bbfc1a9307fdd61c28bfe923f13e"}, + {file = "identify-2.5.35.tar.gz", hash = "sha256:10a7ca245cfcd756a554a7288159f72ff105ad233c7c4b9c6f0f4d108f5f6791"}, ] [package.extras] @@ -925,21 +824,19 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.4" +version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, ] [[package]] name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -947,31 +844,10 @@ files = [ {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] -[[package]] -name = "importlib-metadata" -version = "4.2.0" -description = "Read metadata from Python packages" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "importlib_metadata-4.2.0-py3-none-any.whl", hash = "sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b"}, - {file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"}, -] - -[package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} -zipp = ">=0.5" - -[package.extras] -docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] - [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -981,32 +857,27 @@ files = [ [[package]] name = "isort" -version = "5.11.5" +version = "5.13.2" description = "A Python utility / library to sort Python imports." -category = "main" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "isort-5.11.5-py3-none-any.whl", hash = "sha256:ba1d72fb2595a01c7895a5128f9585a5cc4b6d395f1c8d514989b9a7eb2a8746"}, - {file = "isort-5.11.5.tar.gz", hash = "sha256:6be1f76a507cb2ecf16c7cf14a37e41609ca082330be4e3436a18ef74add55db"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] @@ -1017,19 +888,17 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "markdown-it-py" -version = "2.2.0" +version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, - {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, ] [package.dependencies] mdurl = ">=0.1,<1.0" -typing_extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [package.extras] benchmarking = ["psutil", "pytest", "pytest-benchmark"] @@ -1038,74 +907,82 @@ compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0 linkify = ["linkify-it-py (>=1,<3)"] plugins = ["mdit-py-plugins"] profiling = ["gprof2dot"] -rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.2" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, - {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1115,29 +992,27 @@ files = [ [[package]] name = "mdit-py-plugins" -version = "0.3.4" +version = "0.4.0" description = "Collection of plugins for markdown-it-py" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mdit-py-plugins-0.3.4.tar.gz", hash = "sha256:3278aab2e2b692539082f05e1243f24742194ffd92481f48844f057b51971283"}, - {file = "mdit_py_plugins-0.3.4-py3-none-any.whl", hash = "sha256:4f1441264ac5cb39fa40a5901921c2acf314ea098d75629750c138f80d552cdf"}, + {file = "mdit_py_plugins-0.4.0-py3-none-any.whl", hash = "sha256:b51b3bb70691f57f974e257e367107857a93b36f322a9e6d44ca5bf28ec2def9"}, + {file = "mdit_py_plugins-0.4.0.tar.gz", hash = "sha256:d8ab27e9aed6c38aa716819fedfde15ca275715955f8a185a8e1cf90fb1d2c1b"}, ] [package.dependencies] -markdown-it-py = ">=1.0.0,<3.0.0" +markdown-it-py = ">=1.0.0,<4.0.0" [package.extras] code-style = ["pre-commit"] -rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +rtd = ["myst-parser", "sphinx-book-theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1147,141 +1022,153 @@ files = [ [[package]] name = "multidict" -version = "6.0.4" +version = "6.0.5" description = "multidict implementation" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, - {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, - {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, - {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, - {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, - {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, - {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, - {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, - {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, - {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, - {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, - {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, - {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, + {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, + {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, + {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, + {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, + {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, + {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, + {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, ] [[package]] name = "mypy" -version = "1.0.1" +version = "1.9.0" description = "Optional static typing for Python" -category = "dev" optional = false -python-versions = ">=3.7" -files = [ - {file = "mypy-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:71a808334d3f41ef011faa5a5cd8153606df5fc0b56de5b2e89566c8093a0c9a"}, - {file = "mypy-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:920169f0184215eef19294fa86ea49ffd4635dedfdea2b57e45cb4ee85d5ccaf"}, - {file = "mypy-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27a0f74a298769d9fdc8498fcb4f2beb86f0564bcdb1a37b58cbbe78e55cf8c0"}, - {file = "mypy-1.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:65b122a993d9c81ea0bfde7689b3365318a88bde952e4dfa1b3a8b4ac05d168b"}, - {file = "mypy-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:5deb252fd42a77add936b463033a59b8e48eb2eaec2976d76b6878d031933fe4"}, - {file = "mypy-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2013226d17f20468f34feddd6aae4635a55f79626549099354ce641bc7d40262"}, - {file = "mypy-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:48525aec92b47baed9b3380371ab8ab6e63a5aab317347dfe9e55e02aaad22e8"}, - {file = "mypy-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c96b8a0c019fe29040d520d9257d8c8f122a7343a8307bf8d6d4a43f5c5bfcc8"}, - {file = "mypy-1.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:448de661536d270ce04f2d7dddaa49b2fdba6e3bd8a83212164d4174ff43aa65"}, - {file = "mypy-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:d42a98e76070a365a1d1c220fcac8aa4ada12ae0db679cb4d910fabefc88b994"}, - {file = "mypy-1.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e64f48c6176e243ad015e995de05af7f22bbe370dbb5b32bd6988438ec873919"}, - {file = "mypy-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fdd63e4f50e3538617887e9aee91855368d9fc1dea30da743837b0df7373bc4"}, - {file = "mypy-1.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dbeb24514c4acbc78d205f85dd0e800f34062efcc1f4a4857c57e4b4b8712bff"}, - {file = "mypy-1.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a2948c40a7dd46c1c33765718936669dc1f628f134013b02ff5ac6c7ef6942bf"}, - {file = "mypy-1.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bc8d6bd3b274dd3846597855d96d38d947aedba18776aa998a8d46fabdaed76"}, - {file = "mypy-1.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:17455cda53eeee0a4adb6371a21dd3dbf465897de82843751cf822605d152c8c"}, - {file = "mypy-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e831662208055b006eef68392a768ff83596035ffd6d846786578ba1714ba8f6"}, - {file = "mypy-1.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e60d0b09f62ae97a94605c3f73fd952395286cf3e3b9e7b97f60b01ddfbbda88"}, - {file = "mypy-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:0af4f0e20706aadf4e6f8f8dc5ab739089146b83fd53cb4a7e0e850ef3de0bb6"}, - {file = "mypy-1.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:24189f23dc66f83b839bd1cce2dfc356020dfc9a8bae03978477b15be61b062e"}, - {file = "mypy-1.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93a85495fb13dc484251b4c1fd7a5ac370cd0d812bbfc3b39c1bafefe95275d5"}, - {file = "mypy-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f546ac34093c6ce33f6278f7c88f0f147a4849386d3bf3ae193702f4fe31407"}, - {file = "mypy-1.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c6c2ccb7af7154673c591189c3687b013122c5a891bb5651eca3db8e6c6c55bd"}, - {file = "mypy-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:15b5a824b58c7c822c51bc66308e759243c32631896743f030daf449fe3677f3"}, - {file = "mypy-1.0.1-py3-none-any.whl", hash = "sha256:eda5c8b9949ed411ff752b9a01adda31afe7eae1e53e946dbdf9db23865e66c4"}, - {file = "mypy-1.0.1.tar.gz", hash = "sha256:28cea5a6392bb43d266782983b5a4216c25544cd7d80be681a155ddcdafd152d"}, +python-versions = ">=3.8" +files = [ + {file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f"}, + {file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed"}, + {file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150"}, + {file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374"}, + {file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03"}, + {file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3"}, + {file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc"}, + {file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129"}, + {file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612"}, + {file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3"}, + {file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd"}, + {file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6"}, + {file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185"}, + {file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913"}, + {file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6"}, + {file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b"}, + {file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2"}, + {file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e"}, + {file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04"}, + {file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89"}, + {file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02"}, + {file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4"}, + {file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d"}, + {file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf"}, + {file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9"}, + {file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e"}, + {file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"}, ] [package.dependencies] -mypy-extensions = ">=0.4.3" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} -typing-extensions = ">=3.10" +mypy-extensions = ">=1.0.0" +typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] +mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1291,41 +1178,39 @@ files = [ [[package]] name = "myst-parser" -version = "0.18.1" -description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." -category = "dev" +version = "2.0.0" +description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, - {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, + {file = "myst_parser-2.0.0-py3-none-any.whl", hash = "sha256:7c36344ae39c8e740dad7fdabf5aa6fc4897a813083c6cc9990044eb93656b14"}, + {file = "myst_parser-2.0.0.tar.gz", hash = "sha256:ea929a67a6a0b1683cdbe19b8d2e724cd7643f8aa3e7bb18dd65beac3483bead"}, ] [package.dependencies] -docutils = ">=0.15,<0.20" +docutils = ">=0.16,<0.21" jinja2 = "*" -markdown-it-py = ">=1.0.0,<3.0.0" -mdit-py-plugins = ">=0.3.1,<0.4.0" +markdown-it-py = ">=3.0,<4.0" +mdit-py-plugins = ">=0.4,<1.0" pyyaml = "*" -sphinx = ">=4,<6" -typing-extensions = "*" +sphinx = ">=6,<8" [package.extras] -code-style = ["pre-commit (>=2.12,<3.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] -testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] +code-style = ["pre-commit (>=3.0,<4.0)"] +linkify = ["linkify-it-py (>=2.0,<3.0)"] +rtd = ["ipython", "pydata-sphinx-theme (==v0.13.0rc4)", "sphinx-autodoc2 (>=0.4.2,<0.5.0)", "sphinx-book-theme (==1.0.0rc2)", "sphinx-copybutton", "sphinx-design2", "sphinx-pyscript", "sphinx-tippy (>=0.3.1)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.8.2,<0.9.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=7,<8)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx-pytest"] +testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4,<0.4.0)"] [[package]] name = "nodeenv" -version = "1.7.0" +version = "1.8.0" description = "Node.js virtual environment builder" -category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ - {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, - {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, ] [package.dependencies] @@ -1335,7 +1220,6 @@ setuptools = "*" name = "openapi-schema-pydantic" version = "1.2.4" description = "OpenAPI (v3) specification schema as pydantic class" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1348,102 +1232,100 @@ pydantic = ">=1.8.2" [[package]] name = "orjson" -version = "3.8.7" +version = "3.9.15" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" -category = "main" optional = false -python-versions = ">=3.7" -files = [ - {file = "orjson-3.8.7-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:f98c82850b7b4b7e27785ca43706fa86c893cdb88d54576bbb9b0d9c1070e421"}, - {file = "orjson-3.8.7-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:1dee503c6c1a0659c5b46f5f39d9ca9d3657b11ca8bb4af8506086df416887d9"}, - {file = "orjson-3.8.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc4fa83831f42ce5c938f8cefc2e175fa1df6f661fdeaba3badf26d2b8cfcf73"}, - {file = "orjson-3.8.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e432c6c9c8b97ad825276d5795286f7cc9689f377a97e3b7ecf14918413303f"}, - {file = "orjson-3.8.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee519964a5a0efb9633f38b1129fd242807c5c57162844efeeaab1c8de080051"}, - {file = "orjson-3.8.7-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:109b539ce5bf60a121454d008fa67c3b67e5a3249e47d277012645922cf74bd0"}, - {file = "orjson-3.8.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ad4d441fbde4133af6fee37f67dbf23181b9c537ecc317346ec8c3b4c8ec7705"}, - {file = "orjson-3.8.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:89dc786419e1ce2588345f58dd6a434e6728bce66b94989644234bcdbe39b603"}, - {file = "orjson-3.8.7-cp310-none-win_amd64.whl", hash = "sha256:697abde7350fb8076d44bcb6b4ab3ce415ae2b5a9bb91efc460e5ab0d96bb5d3"}, - {file = "orjson-3.8.7-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:1c19f47b35b9966a3abadf341b18ee4a860431bf2b00fd8d58906d51cf78aa70"}, - {file = "orjson-3.8.7-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:3ffaabb380cd0ee187b4fc362516df6bf739808130b1339445c7d8878fca36e7"}, - {file = "orjson-3.8.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d88837002c5a8af970745b8e0ca1b0fdb06aafbe7f1279e110d338ea19f3d23"}, - {file = "orjson-3.8.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff60187d1b7e0bfab376b6002b08c560b7de06c87cf3a8ac639ecf58f84c5f3b"}, - {file = "orjson-3.8.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0110970aed35dec293f30ed1e09f8604afd5d15c5ef83de7f6c427619b3ba47b"}, - {file = "orjson-3.8.7-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:51b275475d4e36118b65ad56f9764056a09d985c5d72e64579bf8816f1356a5e"}, - {file = "orjson-3.8.7-cp311-none-win_amd64.whl", hash = "sha256:63144d27735f3b60f079f247ac9a289d80dfe49a7f03880dfa0c0ba64d6491d5"}, - {file = "orjson-3.8.7-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:a16273d77db746bb1789a2bbfded81148a60743fd6f9d5185e02d92e3732fa18"}, - {file = "orjson-3.8.7-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:5bb32259ea22cc9dd47a6fdc4b8f9f1e2f798fcf56c7c1122a7df0f4c5d33bf3"}, - {file = "orjson-3.8.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad02e9102d4ba67db30a136e631e32aeebd1dce26c9f5942a457b02df131c5d0"}, - {file = "orjson-3.8.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dbcfcec2b7ac52deb7be3685b551addc28ee8fa454ef41f8b714df6ba0e32a27"}, - {file = "orjson-3.8.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a0e5504a5fc86083cc210c6946e8d61e13fe9f1d7a7bf81b42f7050a49d4fb"}, - {file = "orjson-3.8.7-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:7bd4fd37adb03b1f2a1012d43c9f95973a02164e131dfe3ff804d7e180af5653"}, - {file = "orjson-3.8.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:188ed9f9a781333ad802af54c55d5a48991e292239aef41bd663b6e314377eb8"}, - {file = "orjson-3.8.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:cc52f58c688cb10afd810280e450f56fbcb27f52c053463e625c8335c95db0dc"}, - {file = "orjson-3.8.7-cp37-none-win_amd64.whl", hash = "sha256:403c8c84ac8a02c40613b0493b74d5256379e65196d39399edbf2ed3169cbeb5"}, - {file = "orjson-3.8.7-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:7d6ac5f8a2a17095cd927c4d52abbb38af45918e0d3abd60fb50cfd49d71ae24"}, - {file = "orjson-3.8.7-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:0295a7bfd713fa89231fd0822c995c31fc2343c59a1d13aa1b8b6651335654f5"}, - {file = "orjson-3.8.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feb32aaaa34cf2f891eb793ad320d4bb6731328496ae59b6c9eb1b620c42b529"}, - {file = "orjson-3.8.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7a3ab1a473894e609b6f1d763838c6689ba2b97620c256a32c4d9f10595ac179"}, - {file = "orjson-3.8.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e8c430d82b532c5ab95634e034bbf6ca7432ffe175a3e63eadd493e00b3a555"}, - {file = "orjson-3.8.7-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:366cc75f7e09106f9dac95a675aef413367b284f25507d21e55bd7f45f445e80"}, - {file = "orjson-3.8.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:84d154d07e8b17d97e990d5d710b719a031738eb1687d8a05b9089f0564ff3e0"}, - {file = "orjson-3.8.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06180014afcfdc167ca984b312218aa62ce20093965c437c5f9166764cb65ef7"}, - {file = "orjson-3.8.7-cp38-none-win_amd64.whl", hash = "sha256:41244431ba13f2e6ef22b52c5cf0202d17954489f4a3c0505bd28d0e805c3546"}, - {file = "orjson-3.8.7-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:b20f29fa8371b8023f1791df035a2c3ccbd98baa429ac3114fc104768f7db6f8"}, - {file = "orjson-3.8.7-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:226bfc1da2f21ee74918cee2873ea9a0fec1a8830e533cb287d192d593e99d02"}, - {file = "orjson-3.8.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75c11023ac29e29fd3e75038d0e8dd93f9ea24d7b9a5e871967a8921a88df24"}, - {file = "orjson-3.8.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:78604d3acfd7cd502f6381eea0c42281fe2b74755b334074ab3ebc0224100be1"}, - {file = "orjson-3.8.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7129a6847f0494aa1427167486ef6aea2e835ba05f6c627df522692ee228f65"}, - {file = "orjson-3.8.7-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1a1a8f4980059f48483782c608145b0f74538c266e01c183d9bcd9f8b71dbada"}, - {file = "orjson-3.8.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d60304172a33705ce4bd25a6261ab84bed2dab0b3d3b79672ea16c7648af4832"}, - {file = "orjson-3.8.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4f733062d84389c32c0492e5a4929056fac217034a94523debe0430bcc602cda"}, - {file = "orjson-3.8.7-cp39-none-win_amd64.whl", hash = "sha256:010e2970ec9e826c332819e0da4b14b29b19641da0f1a6af4cec91629ef9b988"}, - {file = "orjson-3.8.7.tar.gz", hash = "sha256:8460c8810652dba59c38c80d27c325b5092d189308d8d4f3e688dbd8d4f3b2dc"}, +python-versions = ">=3.8" +files = [ + {file = "orjson-3.9.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:d61f7ce4727a9fa7680cd6f3986b0e2c732639f46a5e0156e550e35258aa313a"}, + {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4feeb41882e8aa17634b589533baafdceb387e01e117b1ec65534ec724023d04"}, + {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fbbeb3c9b2edb5fd044b2a070f127a0ac456ffd079cb82746fc84af01ef021a4"}, + {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b66bcc5670e8a6b78f0313bcb74774c8291f6f8aeef10fe70e910b8040f3ab75"}, + {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2973474811db7b35c30248d1129c64fd2bdf40d57d84beed2a9a379a6f57d0ab"}, + {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fe41b6f72f52d3da4db524c8653e46243c8c92df826ab5ffaece2dba9cccd58"}, + {file = "orjson-3.9.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4228aace81781cc9d05a3ec3a6d2673a1ad0d8725b4e915f1089803e9efd2b99"}, + {file = "orjson-3.9.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6f7b65bfaf69493c73423ce9db66cfe9138b2f9ef62897486417a8fcb0a92bfe"}, + {file = "orjson-3.9.15-cp310-none-win32.whl", hash = "sha256:2d99e3c4c13a7b0fb3792cc04c2829c9db07838fb6973e578b85c1745e7d0ce7"}, + {file = "orjson-3.9.15-cp310-none-win_amd64.whl", hash = "sha256:b725da33e6e58e4a5d27958568484aa766e825e93aa20c26c91168be58e08cbb"}, + {file = "orjson-3.9.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c8e8fe01e435005d4421f183038fc70ca85d2c1e490f51fb972db92af6e047c2"}, + {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87f1097acb569dde17f246faa268759a71a2cb8c96dd392cd25c668b104cad2f"}, + {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff0f9913d82e1d1fadbd976424c316fbc4d9c525c81d047bbdd16bd27dd98cfc"}, + {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8055ec598605b0077e29652ccfe9372247474375e0e3f5775c91d9434e12d6b1"}, + {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6768a327ea1ba44c9114dba5fdda4a214bdb70129065cd0807eb5f010bfcbb5"}, + {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12365576039b1a5a47df01aadb353b68223da413e2e7f98c02403061aad34bde"}, + {file = "orjson-3.9.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:71c6b009d431b3839d7c14c3af86788b3cfac41e969e3e1c22f8a6ea13139404"}, + {file = "orjson-3.9.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e18668f1bd39e69b7fed19fa7cd1cd110a121ec25439328b5c89934e6d30d357"}, + {file = "orjson-3.9.15-cp311-none-win32.whl", hash = "sha256:62482873e0289cf7313461009bf62ac8b2e54bc6f00c6fabcde785709231a5d7"}, + {file = "orjson-3.9.15-cp311-none-win_amd64.whl", hash = "sha256:b3d336ed75d17c7b1af233a6561cf421dee41d9204aa3cfcc6c9c65cd5bb69a8"}, + {file = "orjson-3.9.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:82425dd5c7bd3adfe4e94c78e27e2fa02971750c2b7ffba648b0f5d5cc016a73"}, + {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c51378d4a8255b2e7c1e5cc430644f0939539deddfa77f6fac7b56a9784160a"}, + {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6ae4e06be04dc00618247c4ae3f7c3e561d5bc19ab6941427f6d3722a0875ef7"}, + {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcef128f970bb63ecf9a65f7beafd9b55e3aaf0efc271a4154050fc15cdb386e"}, + {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b72758f3ffc36ca566ba98a8e7f4f373b6c17c646ff8ad9b21ad10c29186f00d"}, + {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c57bc7b946cf2efa67ac55766e41764b66d40cbd9489041e637c1304400494"}, + {file = "orjson-3.9.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:946c3a1ef25338e78107fba746f299f926db408d34553b4754e90a7de1d44068"}, + {file = "orjson-3.9.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2f256d03957075fcb5923410058982aea85455d035607486ccb847f095442bda"}, + {file = "orjson-3.9.15-cp312-none-win_amd64.whl", hash = "sha256:5bb399e1b49db120653a31463b4a7b27cf2fbfe60469546baf681d1b39f4edf2"}, + {file = "orjson-3.9.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b17f0f14a9c0ba55ff6279a922d1932e24b13fc218a3e968ecdbf791b3682b25"}, + {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f6cbd8e6e446fb7e4ed5bac4661a29e43f38aeecbf60c4b900b825a353276a1"}, + {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76bc6356d07c1d9f4b782813094d0caf1703b729d876ab6a676f3aaa9a47e37c"}, + {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fdfa97090e2d6f73dced247a2f2d8004ac6449df6568f30e7fa1a045767c69a6"}, + {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7413070a3e927e4207d00bd65f42d1b780fb0d32d7b1d951f6dc6ade318e1b5a"}, + {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cf1596680ac1f01839dba32d496136bdd5d8ffb858c280fa82bbfeb173bdd40"}, + {file = "orjson-3.9.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:809d653c155e2cc4fd39ad69c08fdff7f4016c355ae4b88905219d3579e31eb7"}, + {file = "orjson-3.9.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:920fa5a0c5175ab14b9c78f6f820b75804fb4984423ee4c4f1e6d748f8b22bc1"}, + {file = "orjson-3.9.15-cp38-none-win32.whl", hash = "sha256:2b5c0f532905e60cf22a511120e3719b85d9c25d0e1c2a8abb20c4dede3b05a5"}, + {file = "orjson-3.9.15-cp38-none-win_amd64.whl", hash = "sha256:67384f588f7f8daf040114337d34a5188346e3fae6c38b6a19a2fe8c663a2f9b"}, + {file = "orjson-3.9.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6fc2fe4647927070df3d93f561d7e588a38865ea0040027662e3e541d592811e"}, + {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34cbcd216e7af5270f2ffa63a963346845eb71e174ea530867b7443892d77180"}, + {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f541587f5c558abd93cb0de491ce99a9ef8d1ae29dd6ab4dbb5a13281ae04cbd"}, + {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92255879280ef9c3c0bcb327c5a1b8ed694c290d61a6a532458264f887f052cb"}, + {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:05a1f57fb601c426635fcae9ddbe90dfc1ed42245eb4c75e4960440cac667262"}, + {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ede0bde16cc6e9b96633df1631fbcd66491d1063667f260a4f2386a098393790"}, + {file = "orjson-3.9.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e88b97ef13910e5f87bcbc4dd7979a7de9ba8702b54d3204ac587e83639c0c2b"}, + {file = "orjson-3.9.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57d5d8cf9c27f7ef6bc56a5925c7fbc76b61288ab674eb352c26ac780caa5b10"}, + {file = "orjson-3.9.15-cp39-none-win32.whl", hash = "sha256:001f4eb0ecd8e9ebd295722d0cbedf0748680fb9998d3993abaed2f40587257a"}, + {file = "orjson-3.9.15-cp39-none-win_amd64.whl", hash = "sha256:ea0b183a5fe6b2b45f3b854b0d19c4e932d6f5934ae1f723b07cf9560edd4ec7"}, + {file = "orjson-3.9.15.tar.gz", hash = "sha256:95cae920959d772f30ab36d3b25f83bb0f3be671e986c72ce22f8fa700dae061"}, ] [[package]] name = "packaging" -version = "21.3" +version = "24.0" description = "Core utilities for Python packages" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" - [[package]] name = "pathspec" -version = "0.11.0" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"}, - {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pbr" -version = "5.11.1" +version = "6.0.0" description = "Python Build Reasonableness" -category = "dev" optional = false python-versions = ">=2.6" files = [ - {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"}, - {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"}, + {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, + {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, ] [[package]] name = "pep8-naming" version = "0.13.3" description = "Check PEP-8 naming conventions, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1456,148 +1338,191 @@ flake8 = ">=5.0.0" [[package]] name = "platformdirs" -version = "2.6.2" +version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-2.6.2-py3-none-any.whl", hash = "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490"}, - {file = "platformdirs-2.6.2.tar.gz", hash = "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""} - [package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] [[package]] name = "pluggy" -version = "1.0.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "2.21.0" +version = "3.6.2" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "pre_commit-2.21.0-py2.py3-none-any.whl", hash = "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad"}, - {file = "pre_commit-2.21.0.tar.gz", hash = "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658"}, + {file = "pre_commit-3.6.2-py2.py3-none-any.whl", hash = "sha256:ba637c2d7a670c10daedc059f5c49b5bd0aadbccfcd7ec15592cf9665117532c"}, + {file = "pre_commit-3.6.2.tar.gz", hash = "sha256:c3ef34f463045c88658c5b99f38c1e297abdcc0ff13f98d3370055fbbfabc67e"}, ] [package.dependencies] cfgv = ">=2.0.0" identify = ">=1.0.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" [[package]] name = "pre-commit-hooks" -version = "4.4.0" +version = "4.5.0" description = "Some out-of-the-box hooks for pre-commit." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pre_commit_hooks-4.4.0-py2.py3-none-any.whl", hash = "sha256:fc8837335476221ccccda3d176ed6ae29fe58753ce7e8b7863f5d0f987328fc6"}, - {file = "pre_commit_hooks-4.4.0.tar.gz", hash = "sha256:7011eed8e1a25cde94693da009cba76392194cecc2f3f06c51a44ea6ad6c2af9"}, + {file = "pre_commit_hooks-4.5.0-py2.py3-none-any.whl", hash = "sha256:b779d5c44ede9b1fda48e2d96b08e9aa5b1d2fdb8903ca09f0dbaca22d529edb"}, + {file = "pre_commit_hooks-4.5.0.tar.gz", hash = "sha256:ffbe2af1c85ac9a7695866955680b4dee98822638b748a6f3debefad79748c8a"}, ] [package.dependencies] "ruamel.yaml" = ">=0.15" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} [[package]] name = "pycodestyle" -version = "2.9.1" +version = "2.11.1" description = "Python style guide checker" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, - {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, + {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, + {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, ] [[package]] name = "pydantic" -version = "1.10.5" -description = "Data validation and settings management using python type hints" -category = "main" +version = "2.6.4" +description = "Data validation using Python type hints" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, - {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, - {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, - {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, - {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, - {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, - {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, - {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, - {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, - {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, + {file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"}, + {file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +annotated-types = ">=0.4.0" +pydantic-core = "2.16.3" +typing-extensions = ">=4.6.1" [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.16.3" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"}, + {file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:162e498303d2b1c036b957a1278fa0899d02b2842f1ff901b6395104c5554a45"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f583bd01bbfbff4eaee0868e6fc607efdfcc2b03c1c766b06a707abbc856187"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b926dd38db1519ed3043a4de50214e0d600d404099c3392f098a7f9d75029ff8"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:716b542728d4c742353448765aa7cdaa519a7b82f9564130e2b3f6766018c9ec"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4ad7f7ee1a13d9cb49d8198cd7d7e3aa93e425f371a68235f784e99741561f"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd87f48924f360e5d1c5f770d6155ce0e7d83f7b4e10c2f9ec001c73cf475c99"}, + {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0df446663464884297c793874573549229f9eca73b59360878f382a0fc085979"}, + {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4df8a199d9f6afc5ae9a65f8f95ee52cae389a8c6b20163762bde0426275b7db"}, + {file = "pydantic_core-2.16.3-cp310-none-win32.whl", hash = "sha256:456855f57b413f077dff513a5a28ed838dbbb15082ba00f80750377eed23d132"}, + {file = "pydantic_core-2.16.3-cp310-none-win_amd64.whl", hash = "sha256:732da3243e1b8d3eab8c6ae23ae6a58548849d2e4a4e03a1924c8ddf71a387cb"}, + {file = "pydantic_core-2.16.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:519ae0312616026bf4cedc0fe459e982734f3ca82ee8c7246c19b650b60a5ee4"}, + {file = "pydantic_core-2.16.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b3992a322a5617ded0a9f23fd06dbc1e4bd7cf39bc4ccf344b10f80af58beacd"}, + {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d62da299c6ecb04df729e4b5c52dc0d53f4f8430b4492b93aa8de1f541c4aac"}, + {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2acca2be4bb2f2147ada8cac612f8a98fc09f41c89f87add7256ad27332c2fda"}, + {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b662180108c55dfbf1280d865b2d116633d436cfc0bba82323554873967b340"}, + {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7c6ed0dc9d8e65f24f5824291550139fe6f37fac03788d4580da0d33bc00c97"}, + {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1bb0827f56654b4437955555dc3aeeebeddc47c2d7ed575477f082622c49e"}, + {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e56f8186d6210ac7ece503193ec84104da7ceb98f68ce18c07282fcc2452e76f"}, + {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:936e5db01dd49476fa8f4383c259b8b1303d5dd5fb34c97de194560698cc2c5e"}, + {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33809aebac276089b78db106ee692bdc9044710e26f24a9a2eaa35a0f9fa70ba"}, + {file = "pydantic_core-2.16.3-cp311-none-win32.whl", hash = "sha256:ded1c35f15c9dea16ead9bffcde9bb5c7c031bff076355dc58dcb1cb436c4721"}, + {file = "pydantic_core-2.16.3-cp311-none-win_amd64.whl", hash = "sha256:d89ca19cdd0dd5f31606a9329e309d4fcbb3df860960acec32630297d61820df"}, + {file = "pydantic_core-2.16.3-cp311-none-win_arm64.whl", hash = "sha256:6162f8d2dc27ba21027f261e4fa26f8bcb3cf9784b7f9499466a311ac284b5b9"}, + {file = "pydantic_core-2.16.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0f56ae86b60ea987ae8bcd6654a887238fd53d1384f9b222ac457070b7ac4cff"}, + {file = "pydantic_core-2.16.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9bd22a2a639e26171068f8ebb5400ce2c1bc7d17959f60a3b753ae13c632975"}, + {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4204e773b4b408062960e65468d5346bdfe139247ee5f1ca2a378983e11388a2"}, + {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f651dd19363c632f4abe3480a7c87a9773be27cfe1341aef06e8759599454120"}, + {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aaf09e615a0bf98d406657e0008e4a8701b11481840be7d31755dc9f97c44053"}, + {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8e47755d8152c1ab5b55928ab422a76e2e7b22b5ed8e90a7d584268dd49e9c6b"}, + {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:500960cb3a0543a724a81ba859da816e8cf01b0e6aaeedf2c3775d12ee49cade"}, + {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf6204fe865da605285c34cf1172879d0314ff267b1c35ff59de7154f35fdc2e"}, + {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d33dd21f572545649f90c38c227cc8631268ba25c460b5569abebdd0ec5974ca"}, + {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:49d5d58abd4b83fb8ce763be7794d09b2f50f10aa65c0f0c1696c677edeb7cbf"}, + {file = "pydantic_core-2.16.3-cp312-none-win32.whl", hash = "sha256:f53aace168a2a10582e570b7736cc5bef12cae9cf21775e3eafac597e8551fbe"}, + {file = "pydantic_core-2.16.3-cp312-none-win_amd64.whl", hash = "sha256:0d32576b1de5a30d9a97f300cc6a3f4694c428d956adbc7e6e2f9cad279e45ed"}, + {file = "pydantic_core-2.16.3-cp312-none-win_arm64.whl", hash = "sha256:ec08be75bb268473677edb83ba71e7e74b43c008e4a7b1907c6d57e940bf34b6"}, + {file = "pydantic_core-2.16.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:b1f6f5938d63c6139860f044e2538baeee6f0b251a1816e7adb6cbce106a1f01"}, + {file = "pydantic_core-2.16.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a1ef6a36fdbf71538142ed604ad19b82f67b05749512e47f247a6ddd06afdc7"}, + {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704d35ecc7e9c31d48926150afada60401c55efa3b46cd1ded5a01bdffaf1d48"}, + {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d937653a696465677ed583124b94a4b2d79f5e30b2c46115a68e482c6a591c8a"}, + {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9803edf8e29bd825f43481f19c37f50d2b01899448273b3a7758441b512acf8"}, + {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72282ad4892a9fb2da25defeac8c2e84352c108705c972db82ab121d15f14e6d"}, + {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f752826b5b8361193df55afcdf8ca6a57d0232653494ba473630a83ba50d8c9"}, + {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4384a8f68ddb31a0b0c3deae88765f5868a1b9148939c3f4121233314ad5532c"}, + {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4b2bf78342c40b3dc830880106f54328928ff03e357935ad26c7128bbd66ce8"}, + {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:13dcc4802961b5f843a9385fc821a0b0135e8c07fc3d9949fd49627c1a5e6ae5"}, + {file = "pydantic_core-2.16.3-cp38-none-win32.whl", hash = "sha256:e3e70c94a0c3841e6aa831edab1619ad5c511199be94d0c11ba75fe06efe107a"}, + {file = "pydantic_core-2.16.3-cp38-none-win_amd64.whl", hash = "sha256:ecdf6bf5f578615f2e985a5e1f6572e23aa632c4bd1dc67f8f406d445ac115ed"}, + {file = "pydantic_core-2.16.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bda1ee3e08252b8d41fa5537413ffdddd58fa73107171a126d3b9ff001b9b820"}, + {file = "pydantic_core-2.16.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:21b888c973e4f26b7a96491c0965a8a312e13be108022ee510248fe379a5fa23"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be0ec334369316fa73448cc8c982c01e5d2a81c95969d58b8f6e272884df0074"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5b6079cc452a7c53dd378c6f881ac528246b3ac9aae0f8eef98498a75657805"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee8d5f878dccb6d499ba4d30d757111847b6849ae07acdd1205fffa1fc1253c"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7233d65d9d651242a68801159763d09e9ec96e8a158dbf118dc090cd77a104c9"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6119dc90483a5cb50a1306adb8d52c66e447da88ea44f323e0ae1a5fcb14256"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:578114bc803a4c1ff9946d977c221e4376620a46cf78da267d946397dc9514a8"}, + {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d8f99b147ff3fcf6b3cc60cb0c39ea443884d5559a30b1481e92495f2310ff2b"}, + {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4ac6b4ce1e7283d715c4b729d8f9dab9627586dafce81d9eaa009dd7f25dd972"}, + {file = "pydantic_core-2.16.3-cp39-none-win32.whl", hash = "sha256:e7774b570e61cb998490c5235740d475413a1f6de823169b4cf94e2fe9e9f6b2"}, + {file = "pydantic_core-2.16.3-cp39-none-win_amd64.whl", hash = "sha256:9091632a25b8b87b9a605ec0e61f241c456e9248bfdcf7abdf344fdb169c81cf"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:36fa178aacbc277bc6b62a2c3da95226520da4f4e9e206fdf076484363895d2c"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:dcca5d2bf65c6fb591fff92da03f94cd4f315972f97c21975398bd4bd046854a"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a72fb9963cba4cd5793854fd12f4cfee731e86df140f59ff52a49b3552db241"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b60cc1a081f80a2105a59385b92d82278b15d80ebb3adb200542ae165cd7d183"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cbcc558401de90a746d02ef330c528f2e668c83350f045833543cd57ecead1ad"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fee427241c2d9fb7192b658190f9f5fd6dfe41e02f3c1489d2ec1e6a5ab1e04a"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f4cb85f693044e0f71f394ff76c98ddc1bc0953e48c061725e540396d5c8a2e1"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b29eeb887aa931c2fcef5aa515d9d176d25006794610c264ddc114c053bf96fe"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a425479ee40ff021f8216c9d07a6a3b54b31c8267c6e17aa88b70d7ebd0e5e5b"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5c5cbc703168d1b7a838668998308018a2718c2130595e8e190220238addc96f"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b6add4c0b39a513d323d3b93bc173dac663c27b99860dd5bf491b240d26137"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f76ee558751746d6a38f89d60b6228fa174e5172d143886af0f85aa306fd89"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:287073c66748f624be4cef893ef9174e3eb88fe0b8a78dc22e88eca4bc357ca6"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ed25e1835c00a332cb10c683cd39da96a719ab1dfc08427d476bce41b92531fc"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:86b3d0033580bd6bbe07590152007275bd7af95f98eaa5bd36f3da219dcd93da"}, + {file = "pydantic_core-2.16.3.tar.gz", hash = "sha256:1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydocstyle" version = "6.3.0" description = "Python docstring style checker" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1606,7 +1531,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">=2.0.0,<5.0.0", markers = "python_version < \"3.8\""} snowballstemmer = ">=2.2.0" [package.extras] @@ -1614,76 +1538,54 @@ toml = ["tomli (>=1.2.3)"] [[package]] name = "pyflakes" -version = "2.5.0" +version = "3.2.0" description = "passive checker of Python programs" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, - {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, ] [[package]] name = "pygments" -version = "2.14.0" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] - -[[package]] -name = "pyparsing" -version = "3.0.9" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "dev" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pytest" -version = "7.2.1" +version = "8.1.1" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, - {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, ] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.4,<2.0" [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1698,93 +1600,85 @@ pytest = ">=4.6" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] -[[package]] -name = "pytz" -version = "2022.7.1" -description = "World timezone definitions, modern and historical" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, -] - [[package]] name = "pyupgrade" -version = "3.3.1" +version = "3.15.1" description = "A tool to automatically upgrade syntax for newer versions." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8.1" files = [ - {file = "pyupgrade-3.3.1-py2.py3-none-any.whl", hash = "sha256:3b93641963df022d605c78aeae4b5956a5296ea24701eafaef9c487527b77e60"}, - {file = "pyupgrade-3.3.1.tar.gz", hash = "sha256:f88bce38b0ba92c2a9a5063c8629e456e8d919b67d2d42c7ecab82ff196f9813"}, + {file = "pyupgrade-3.15.1-py2.py3-none-any.whl", hash = "sha256:c5e005de2805edcd333d1deb04553200ec69da85e4bc9db37b16345ed9e27ed9"}, + {file = "pyupgrade-3.15.1.tar.gz", hash = "sha256:7690857cae0f6253f39241dcd2e57118c333c438b78609fc3c17a5aa61227b7d"}, ] [package.dependencies] -tokenize-rt = ">=3.2.0" +tokenize-rt = ">=5.2.0" [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.1" description = "YAML parser and emitter for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] [[package]] name = "requests" -version = "2.28.2" +version = "2.31.0" description = "Python HTTP for Humans." -category = "dev" optional = false -python-versions = ">=3.7, <4" +python-versions = ">=3.7" files = [ - {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, - {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] @@ -1792,14 +1686,13 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "respx" -version = "0.20.1" +version = "0.20.2" description = "A utility for mocking out the Python HTTPX and HTTP Core libraries." -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "respx-0.20.1-py2.py3-none-any.whl", hash = "sha256:372f06991c03d1f7f480a420a2199d01f1815b6ed5a802f4e4628043a93bd03e"}, - {file = "respx-0.20.1.tar.gz", hash = "sha256:cc47a86d7010806ab65abdcf3b634c56337a737bb5c4d74c19a0dfca83b3bc73"}, + {file = "respx-0.20.2-py2.py3-none-any.whl", hash = "sha256:ab8e1cf6da28a5b2dd883ea617f8130f77f676736e6e9e4a25817ad116a172c9"}, + {file = "respx-0.20.2.tar.gz", hash = "sha256:07cf4108b1c88b82010f67d3c831dae33a375c7b436e54d87737c7f9f99be643"}, ] [package.dependencies] @@ -1809,7 +1702,6 @@ httpx = ">=0.21.0" name = "restructuredtext-lint" version = "1.4.0" description = "reStructuredText linter" -category = "dev" optional = false python-versions = "*" files = [ @@ -1823,7 +1715,6 @@ docutils = ">=0.11,<1.0" name = "rfc3986" version = "1.5.0" description = "Validating URI References per RFC 3986" -category = "main" optional = false python-versions = "*" files = [ @@ -1837,84 +1728,116 @@ idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} [package.extras] idna2008 = ["idna"] +[[package]] +name = "rich" +version = "13.7.1" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + [[package]] name = "ruamel-yaml" -version = "0.17.21" +version = "0.18.6" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" -category = "dev" optional = false -python-versions = ">=3" +python-versions = ">=3.7" files = [ - {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, - {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, + {file = "ruamel.yaml-0.18.6-py3-none-any.whl", hash = "sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636"}, + {file = "ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b"}, ] [package.dependencies] -"ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""} +"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.13\""} [package.extras] -docs = ["ryd"] +docs = ["mercurial (>5.7)", "ryd"] jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] name = "ruamel-yaml-clib" -version = "0.2.7" +version = "0.2.8" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" -category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_12_6_arm64.whl", hash = "sha256:721bc4ba4525f53f6a611ec0967bdcee61b31df5a56801281027a3a6d1c2daf5"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, - {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, + {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, + {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, ] [[package]] name = "safety" -version = "2.3.5" +version = "2.3.4" description = "Checks installed dependencies for known vulnerabilities and licenses." -category = "dev" optional = false python-versions = "*" files = [ - {file = "safety-2.3.5-py3-none-any.whl", hash = "sha256:2227fcac1b22b53c1615af78872b48348661691450aa25d6704a5504dbd1f7e2"}, - {file = "safety-2.3.5.tar.gz", hash = "sha256:a60c11f8952f412cbb165d70cb1f673a3b43a2ba9a93ce11f97e6a4de834aa3a"}, + {file = "safety-2.3.4-py3-none-any.whl", hash = "sha256:6224dcd9b20986a2b2c5e7acfdfba6bca42bb11b2783b24ed04f32317e5167ea"}, + {file = "safety-2.3.4.tar.gz", hash = "sha256:b9e74e794e82f54d11f4091c5d820c4d2d81de9f953bf0b4f33ac8bc402ae72c"}, ] [package.dependencies] Click = ">=8.0.2" dparse = ">=0.6.2" -packaging = ">=21.0,<22.0" +packaging = ">=21.0" requests = "*" "ruamel.yaml" = ">=0.17.21" setuptools = ">=19.3" @@ -1925,62 +1848,35 @@ gitlab = ["python-gitlab (>=1.3.0)"] [[package]] name = "setuptools" -version = "67.4.0" +version = "69.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-67.4.0-py3-none-any.whl", hash = "sha256:f106dee1b506dee5102cc3f3e9e68137bbad6d47b616be7991714b0c62204251"}, - {file = "setuptools-67.4.0.tar.gz", hash = "sha256:e5fd0a713141a4a105412233c63dc4e17ba0090c8e8334594ac790ec97792330"}, + {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"}, + {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "smmap" -version = "5.0.0" -description = "A pure Python implementation of a sliding window memory map manager" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, - {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, -] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "sniffio" -version = "1.3.0" +version = "1.3.1" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -1990,62 +1886,58 @@ files = [ [[package]] name = "soupsieve" -version = "2.4" +version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "soupsieve-2.4-py3-none-any.whl", hash = "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955"}, - {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"}, + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, ] [[package]] name = "sphinx" -version = "4.3.2" +version = "7.2.6" description = "Python documentation generator" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "Sphinx-4.3.2-py3-none-any.whl", hash = "sha256:6a11ea5dd0bdb197f9c2abc2e0ce73e01340464feaece525e64036546d24c851"}, - {file = "Sphinx-4.3.2.tar.gz", hash = "sha256:0a8836751a68306b3fe97ecbe44db786f8479c3bf4b80e3a7f5c838657b4698c"}, + {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, + {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, ] [package.dependencies] alabaster = ">=0.7,<0.8" -babel = ">=1.3" -colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.14,<0.18" -imagesize = "*" -Jinja2 = ">=2.3" -packaging = "*" -Pygments = ">=2.0" -requests = ">=2.5.0" -setuptools = "*" -snowballstemmer = ">=1.1" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.21" +imagesize = ">=1.3" +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.14" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" +sphinxcontrib-serializinghtml = ">=1.1.9" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.920)", "types-pkg-resources", "types-requests", "types-typed-ast"] -test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] [[package]] name = "sphinx-basic-ng" -version = "1.0.0b1" +version = "1.0.0b2" description = "A modern skeleton for Sphinx themes." -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "sphinx_basic_ng-1.0.0b1-py3-none-any.whl", hash = "sha256:ade597a3029c7865b24ad0eda88318766bcc2f9f4cef60df7e28126fde94db2a"}, - {file = "sphinx_basic_ng-1.0.0b1.tar.gz", hash = "sha256:89374bd3ccd9452a301786781e28c8718e99960f2d4f411845ea75fc7bb5a9b0"}, + {file = "sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b"}, + {file = "sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9"}, ] [package.dependencies] @@ -2056,57 +1948,56 @@ docs = ["furo", "ipython", "myst-parser", "sphinx-copybutton", "sphinx-inline-ta [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.2" -description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "dev" +version = "1.0.8" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.2" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "dev" +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.0" +version = "2.0.5" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2119,191 +2010,128 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.3" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "dev" +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.5" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "dev" +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "starlette" -version = "0.19.1" +version = "0.36.3" description = "The little ASGI library that shines." -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "starlette-0.19.1-py3-none-any.whl", hash = "sha256:5a60c5c2d051f3a8eb546136aa0c9399773a689595e099e0877704d5888279bf"}, - {file = "starlette-0.19.1.tar.gz", hash = "sha256:c6d21096774ecb9639acad41b86b7706e52ba3bf1dc13ea4ed9ad593d47e24c7"}, + {file = "starlette-0.36.3-py3-none-any.whl", hash = "sha256:13d429aa93a61dc40bf503e8c801db1f1bca3dc706b10ef2434a36123568f044"}, + {file = "starlette-0.36.3.tar.gz", hash = "sha256:90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080"}, ] [package.dependencies] anyio = ">=3.4.0,<5" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] -full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] [[package]] name = "stevedore" -version = "3.5.2" +version = "5.2.0" description = "Manage dynamic plugins for Python applications" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "stevedore-3.5.2-py3-none-any.whl", hash = "sha256:fa2630e3d0ad3e22d4914aff2501445815b9a4467a6edc49387c667a38faf5bf"}, - {file = "stevedore-3.5.2.tar.gz", hash = "sha256:cf99f41fc0d5a4f185ca4d3d42b03be9011b0a1ec1a4ea1a282be1b4b306dcc2"}, + {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, + {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, ] [package.dependencies] -importlib-metadata = {version = ">=1.7.0", markers = "python_version < \"3.8\""} pbr = ">=2.0.0,<2.1.0 || >2.1.0" [[package]] name = "tokenize-rt" -version = "5.0.0" +version = "5.2.0" description = "A wrapper around the stdlib `tokenize` which roundtrips." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tokenize_rt-5.0.0-py2.py3-none-any.whl", hash = "sha256:c67772c662c6b3dc65edf66808577968fb10badfc2042e3027196bed4daf9e5a"}, - {file = "tokenize_rt-5.0.0.tar.gz", hash = "sha256:3160bc0c3e8491312d0485171dea861fc160a240f5f5766b72a1165408d10740"}, -] - -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] - -[[package]] -name = "tomli" -version = "2.0.1" -description = "A lil' TOML parser" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - -[[package]] -name = "typed-ast" -version = "1.5.4" -description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, + {file = "tokenize_rt-5.2.0-py2.py3-none-any.whl", hash = "sha256:b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289"}, + {file = "tokenize_rt-5.2.0.tar.gz", hash = "sha256:9fe80f8a5c1edad2d3ede0f37481cc0cc1538a2f442c9c2f9e4feacd2792d054"}, ] [[package]] name = "typeguard" -version = "2.13.3" +version = "4.1.5" description = "Run-time type checker for Python" -category = "dev" optional = false -python-versions = ">=3.5.3" +python-versions = ">=3.8" files = [ - {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, - {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, + {file = "typeguard-4.1.5-py3-none-any.whl", hash = "sha256:8923e55f8873caec136c892c3bed1f676eae7be57cdb94819281b3d3bc9c0953"}, + {file = "typeguard-4.1.5.tar.gz", hash = "sha256:ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.7.0", markers = "python_version < \"3.12\""} + [package.extras] -doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["mypy", "pytest", "typing-extensions"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["coverage[toml] (>=7)", "mypy (>=1.2.0)", "pytest (>=7)"] [[package]] name = "typing-extensions" -version = "4.5.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" +version = "4.10.0" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, ] [[package]] name = "urllib3" -version = "1.26.14" +version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.8" files = [ - {file = "urllib3-1.26.14-py2.py3-none-any.whl", hash = "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"}, - {file = "urllib3-1.26.14.tar.gz", hash = "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72"}, + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "uvicorn" version = "0.18.3" description = "The lightning-fast ASGI server." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2314,169 +2142,161 @@ files = [ [package.dependencies] click = ">=7.0" h11 = ">=0.8" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] standard = ["colorama (>=0.4)", "httptools (>=0.4.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.0)"] [[package]] name = "virtualenv" -version = "20.16.2" +version = "20.25.1" description = "Virtual Python Environment builder" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "virtualenv-20.16.2-py2.py3-none-any.whl", hash = "sha256:635b272a8e2f77cb051946f46c60a54ace3cb5e25568228bd6b57fc70eca9ff3"}, - {file = "virtualenv-20.16.2.tar.gz", hash = "sha256:0ef5be6d07181946891f5abc8047fda8bc2f0b4b9bf222c64e6e8963baee76db"}, + {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, + {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, ] [package.dependencies] -distlib = ">=0.3.1,<1" -filelock = ">=3.2,<4" -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -platformdirs = ">=2,<3" +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] -testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "xdoctest" -version = "1.1.1" +version = "1.1.3" description = "A rewrite of the builtin doctest module" -category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "xdoctest-1.1.1-py3-none-any.whl", hash = "sha256:d59d4ed91cb92e4430ef0ad1b134a2bef02adff7d2fb9c9f057547bee44081a2"}, - {file = "xdoctest-1.1.1.tar.gz", hash = "sha256:2eac8131bdcdf2781b4e5a62d6de87f044b730cc8db8af142a51bb29c245e779"}, + {file = "xdoctest-1.1.3-py3-none-any.whl", hash = "sha256:9360535bd1a971ffc216d9613898cedceb81d0fd024587cc3c03c74d14c00a31"}, + {file = "xdoctest-1.1.3.tar.gz", hash = "sha256:84e76a42a11a5926ff66d9d84c616bc101821099672550481ad96549cbdd02ae"}, ] [package.dependencies] colorama = {version = "*", optional = true, markers = "platform_system == \"Windows\" and extra == \"colors\""} Pygments = {version = "*", optional = true, markers = "python_version >= \"3.5.0\" and extra == \"colors\""} -six = "*" [package.extras] -all = ["IPython", "IPython", "Pygments", "Pygments", "attrs", "codecov", "colorama", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "pyflakes", "pytest", "pytest", "pytest", "pytest-cov", "six", "tomli", "typing"] -all-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "codecov (==2.0.15)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "pyflakes (==2.2.0)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "six (==1.11.0)", "tomli (==0.2.0)", "typing (==3.7.4)"] +all = ["IPython (>=7.10.0)", "IPython (>=7.23.1)", "Pygments (>=2.0.0)", "Pygments (>=2.4.1)", "attrs (>=19.2.0)", "colorama (>=0.4.1)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.3.0)", "debugpy (>=1.6.0)", "ipykernel (>=5.2.0)", "ipykernel (>=6.0.0)", "ipykernel (>=6.11.0)", "ipython-genutils (>=0.2.0)", "jedi (>=0.16)", "jinja2 (>=3.0.0)", "jupyter-client (>=6.1.5)", "jupyter-client (>=7.0.0)", "jupyter-core (>=4.7.0)", "nbconvert (>=6.0.0)", "nbconvert (>=6.1.0)", "pyflakes (>=2.2.0)", "pytest (>=4.6.0)", "pytest (>=4.6.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "tomli (>=0.2.0)", "typing (>=3.7.4)"] +all-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipykernel (==6.11.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "nbconvert (==6.1.0)", "pyflakes (==2.2.0)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "tomli (==0.2.0)", "typing (==3.7.4)"] colors = ["Pygments", "Pygments", "colorama"] -jupyter = ["IPython", "IPython", "attrs", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert"] -optional = ["IPython", "IPython", "Pygments", "Pygments", "attrs", "colorama", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "pyflakes", "tomli"] -optional-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "pyflakes (==2.2.0)", "tomli (==0.2.0)"] -runtime-strict = ["six (==1.11.0)"] -tests = ["codecov", "pytest", "pytest", "pytest", "pytest-cov", "typing"] +jupyter = ["IPython", "IPython", "attrs", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "nbconvert"] +optional = ["IPython (>=7.10.0)", "IPython (>=7.23.1)", "Pygments (>=2.0.0)", "Pygments (>=2.4.1)", "attrs (>=19.2.0)", "colorama (>=0.4.1)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.3.0)", "debugpy (>=1.6.0)", "ipykernel (>=5.2.0)", "ipykernel (>=6.0.0)", "ipykernel (>=6.11.0)", "ipython-genutils (>=0.2.0)", "jedi (>=0.16)", "jinja2 (>=3.0.0)", "jupyter-client (>=6.1.5)", "jupyter-client (>=7.0.0)", "jupyter-core (>=4.7.0)", "nbconvert (>=6.0.0)", "nbconvert (>=6.1.0)", "pyflakes (>=2.2.0)", "tomli (>=0.2.0)"] +optional-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipykernel (==6.11.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "nbconvert (==6.1.0)", "pyflakes (==2.2.0)", "tomli (==0.2.0)"] +tests = ["pytest (>=4.6.0)", "pytest (>=4.6.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "typing (>=3.7.4)"] tests-binary = ["cmake", "cmake", "ninja", "ninja", "pybind11", "pybind11", "scikit-build", "scikit-build"] tests-binary-strict = ["cmake (==3.21.2)", "cmake (==3.25.0)", "ninja (==1.10.2)", "ninja (==1.11.1)", "pybind11 (==2.10.3)", "pybind11 (==2.7.1)", "scikit-build (==0.11.1)", "scikit-build (==0.16.1)"] -tests-strict = ["codecov (==2.0.15)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "typing (==3.7.4)"] +tests-strict = ["pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "typing (==3.7.4)"] [[package]] name = "yarl" -version = "1.8.2" +version = "1.9.4" description = "Yet another URL library" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bb81f753c815f6b8e2ddd2eef3c855cf7da193b82396ac013c661aaa6cc6b0a5"}, - {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:47d49ac96156f0928f002e2424299b2c91d9db73e08c4cd6742923a086f1c863"}, - {file = "yarl-1.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3fc056e35fa6fba63248d93ff6e672c096f95f7836938241ebc8260e062832fe"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58a3c13d1c3005dbbac5c9f0d3210b60220a65a999b1833aa46bd6677c69b08e"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10b08293cda921157f1e7c2790999d903b3fd28cd5c208cf8826b3b508026996"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de986979bbd87272fe557e0a8fcb66fd40ae2ddfe28a8b1ce4eae22681728fef"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c4fcfa71e2c6a3cb568cf81aadc12768b9995323186a10827beccf5fa23d4f8"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae4d7ff1049f36accde9e1ef7301912a751e5bae0a9d142459646114c70ecba6"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bf071f797aec5b96abfc735ab97da9fd8f8768b43ce2abd85356a3127909d146"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:74dece2bfc60f0f70907c34b857ee98f2c6dd0f75185db133770cd67300d505f"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:df60a94d332158b444301c7f569659c926168e4d4aad2cfbf4bce0e8fb8be826"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:63243b21c6e28ec2375f932a10ce7eda65139b5b854c0f6b82ed945ba526bff3"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cfa2bbca929aa742b5084fd4663dd4b87c191c844326fcb21c3afd2d11497f80"}, - {file = "yarl-1.8.2-cp310-cp310-win32.whl", hash = "sha256:b05df9ea7496df11b710081bd90ecc3a3db6adb4fee36f6a411e7bc91a18aa42"}, - {file = "yarl-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:24ad1d10c9db1953291f56b5fe76203977f1ed05f82d09ec97acb623a7976574"}, - {file = "yarl-1.8.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a1fca9588f360036242f379bfea2b8b44cae2721859b1c56d033adfd5893634"}, - {file = "yarl-1.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f37db05c6051eff17bc832914fe46869f8849de5b92dc4a3466cd63095d23dfd"}, - {file = "yarl-1.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77e913b846a6b9c5f767b14dc1e759e5aff05502fe73079f6f4176359d832581"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0978f29222e649c351b173da2b9b4665ad1feb8d1daa9d971eb90df08702668a"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388a45dc77198b2460eac0aca1efd6a7c09e976ee768b0d5109173e521a19daf"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2305517e332a862ef75be8fad3606ea10108662bc6fe08509d5ca99503ac2aee"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42430ff511571940d51e75cf42f1e4dbdded477e71c1b7a17f4da76c1da8ea76"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3150078118f62371375e1e69b13b48288e44f6691c1069340081c3fd12c94d5b"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c15163b6125db87c8f53c98baa5e785782078fbd2dbeaa04c6141935eb6dab7a"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4d04acba75c72e6eb90745447d69f84e6c9056390f7a9724605ca9c56b4afcc6"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e7fd20d6576c10306dea2d6a5765f46f0ac5d6f53436217913e952d19237efc4"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:75c16b2a900b3536dfc7014905a128a2bea8fb01f9ee26d2d7d8db0a08e7cb2c"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6d88056a04860a98341a0cf53e950e3ac9f4e51d1b6f61a53b0609df342cc8b2"}, - {file = "yarl-1.8.2-cp311-cp311-win32.whl", hash = "sha256:fb742dcdd5eec9f26b61224c23baea46c9055cf16f62475e11b9b15dfd5c117b"}, - {file = "yarl-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8c46d3d89902c393a1d1e243ac847e0442d0196bbd81aecc94fcebbc2fd5857c"}, - {file = "yarl-1.8.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ceff9722e0df2e0a9e8a79c610842004fa54e5b309fe6d218e47cd52f791d7ef"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f6b4aca43b602ba0f1459de647af954769919c4714706be36af670a5f44c9c1"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1684a9bd9077e922300ecd48003ddae7a7474e0412bea38d4631443a91d61077"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebb78745273e51b9832ef90c0898501006670d6e059f2cdb0e999494eb1450c2"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3adeef150d528ded2a8e734ebf9ae2e658f4c49bf413f5f157a470e17a4a2e89"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a7c87927a468e5a1dc60c17caf9597161d66457a34273ab1760219953f7f4c"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:efff27bd8cbe1f9bd127e7894942ccc20c857aa8b5a0327874f30201e5ce83d0"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a783cd344113cb88c5ff7ca32f1f16532a6f2142185147822187913eb989f739"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:705227dccbe96ab02c7cb2c43e1228e2826e7ead880bb19ec94ef279e9555b5b"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:34c09b43bd538bf6c4b891ecce94b6fa4f1f10663a8d4ca589a079a5018f6ed7"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a48f4f7fea9a51098b02209d90297ac324241bf37ff6be6d2b0149ab2bd51b37"}, - {file = "yarl-1.8.2-cp37-cp37m-win32.whl", hash = "sha256:0414fd91ce0b763d4eadb4456795b307a71524dbacd015c657bb2a39db2eab89"}, - {file = "yarl-1.8.2-cp37-cp37m-win_amd64.whl", hash = "sha256:d881d152ae0007809c2c02e22aa534e702f12071e6b285e90945aa3c376463c5"}, - {file = "yarl-1.8.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5df5e3d04101c1e5c3b1d69710b0574171cc02fddc4b23d1b2813e75f35a30b1"}, - {file = "yarl-1.8.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7a66c506ec67eb3159eea5096acd05f5e788ceec7b96087d30c7d2865a243918"}, - {file = "yarl-1.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2b4fa2606adf392051d990c3b3877d768771adc3faf2e117b9de7eb977741229"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e21fb44e1eff06dd6ef971d4bdc611807d6bd3691223d9c01a18cec3677939e"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93202666046d9edadfe9f2e7bf5e0782ea0d497b6d63da322e541665d65a044e"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fc77086ce244453e074e445104f0ecb27530d6fd3a46698e33f6c38951d5a0f1"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dd68a92cab699a233641f5929a40f02a4ede8c009068ca8aa1fe87b8c20ae3"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b372aad2b5f81db66ee7ec085cbad72c4da660d994e8e590c997e9b01e44901"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e6f3515aafe0209dd17fb9bdd3b4e892963370b3de781f53e1746a521fb39fc0"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dfef7350ee369197106805e193d420b75467b6cceac646ea5ed3049fcc950a05"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:728be34f70a190566d20aa13dc1f01dc44b6aa74580e10a3fb159691bc76909d"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ff205b58dc2929191f68162633d5e10e8044398d7a45265f90a0f1d51f85f72c"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baf211dcad448a87a0d9047dc8282d7de59473ade7d7fdf22150b1d23859f946"}, - {file = "yarl-1.8.2-cp38-cp38-win32.whl", hash = "sha256:272b4f1599f1b621bf2aabe4e5b54f39a933971f4e7c9aa311d6d7dc06965165"}, - {file = "yarl-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:326dd1d3caf910cd26a26ccbfb84c03b608ba32499b5d6eeb09252c920bcbe4f"}, - {file = "yarl-1.8.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f8ca8ad414c85bbc50f49c0a106f951613dfa5f948ab69c10ce9b128d368baf8"}, - {file = "yarl-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:418857f837347e8aaef682679f41e36c24250097f9e2f315d39bae3a99a34cbf"}, - {file = "yarl-1.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ae0eec05ab49e91a78700761777f284c2df119376e391db42c38ab46fd662b77"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:009a028127e0a1755c38b03244c0bea9d5565630db9c4cf9572496e947137a87"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3edac5d74bb3209c418805bda77f973117836e1de7c000e9755e572c1f7850d0"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da65c3f263729e47351261351b8679c6429151ef9649bba08ef2528ff2c423b2"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef8fb25e52663a1c85d608f6dd72e19bd390e2ecaf29c17fb08f730226e3a08"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcd7bb1e5c45274af9a1dd7494d3c52b2be5e6bd8d7e49c612705fd45420b12d"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44ceac0450e648de86da8e42674f9b7077d763ea80c8ceb9d1c3e41f0f0a9951"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:97209cc91189b48e7cfe777237c04af8e7cc51eb369004e061809bcdf4e55220"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:48dd18adcf98ea9cd721a25313aef49d70d413a999d7d89df44f469edfb38a06"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e59399dda559688461762800d7fb34d9e8a6a7444fd76ec33220a926c8be1516"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d617c241c8c3ad5c4e78a08429fa49e4b04bedfc507b34b4d8dceb83b4af3588"}, - {file = "yarl-1.8.2-cp39-cp39-win32.whl", hash = "sha256:cb6d48d80a41f68de41212f3dfd1a9d9898d7841c8f7ce6696cf2fd9cb57ef83"}, - {file = "yarl-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:6604711362f2dbf7160df21c416f81fac0de6dbcf0b5445a2ef25478ecc4c778"}, - {file = "yarl-1.8.2.tar.gz", hash = "sha256:49d43402c6e3013ad0978602bf6bf5328535c48d192304b91b97a3c6790b1562"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, + {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, + {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, + {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, + {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, + {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, + {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, + {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"}, + {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"}, + {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"}, + {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"}, + {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, + {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, + {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, + {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, + {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, ] [package.dependencies] idna = ">=2.0" multidict = ">=4.0" -typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} - -[[package]] -name = "zipp" -version = "3.15.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [metadata] lock-version = "2.0" -python-versions = "^3.7" -content-hash = "d6adf8973ec13b1c3fdc245066c9039538d63fd766e066e56c9e7bf2acd20139" +python-versions = ">=3.11,<3.12" +content-hash = "876193c5f1add6f3cf0886addc927501ad3c9971bf4b67e83e0ecb2fdecf6a90" diff --git a/pyproject.toml b/pyproject.toml index ce30711..3477bb2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,9 +17,9 @@ keywords = ["OpenAPI", "Generator", "Python", "async"] Changelog = "https://github.com/MarcoMuellner/openapi-python-generator/releases" [tool.poetry.dependencies] -python = "^3.7" +python = ">=3.11,<3.12" httpx = {extras = ["all"], version = "^0.23.0"} -pydantic = "^1.9.1" +pydantic = "^2.6.2" orjson = "^3.7.2" openapi-schema-pydantic = "^1.2.3" Jinja2 = "^3.1.2" @@ -48,7 +48,7 @@ typeguard = ">=2.13.3" xdoctest = {extras = ["colors"], version = ">=0.15.10"} myst-parser = {version = ">=0.16.1"} pytest-cov = "^3.0.0" -fastapi = "^0.78.0" +fastapi = "^0.109.2" uvicorn = "^0.18.1" respx = "^0.20.1" aiohttp = "^3.8.3" From f365b8a4c804bc0af4193ddfd6eb1323525bc041 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Thu, 21 Mar 2024 14:25:59 +0700 Subject: [PATCH 03/28] upgrade to pydantic v2 --- mypy.ini | 2 +- poetry.lock | 16 ++++++++-------- pyproject.toml | 2 +- src/openapi_python_generator/generate_data.py | 2 +- .../python/api_config_generator.py | 2 +- .../language_converters/python/generator.py | 2 +- .../python/model_generator.py | 18 +++++++++--------- .../python/service_generator.py | 16 ++++++++-------- src/openapi_python_generator/models.py | 6 +++--- tests/conftest.py | 2 +- tests/test_api_config.py | 2 +- tests/test_model_generator.py | 6 +++--- tests/test_service_generator.py | 14 +++++++------- 13 files changed, 45 insertions(+), 45 deletions(-) diff --git a/mypy.ini b/mypy.ini index 8e19da4..7e58b8f 100644 --- a/mypy.ini +++ b/mypy.ini @@ -4,7 +4,7 @@ plugins = pydantic.mypy [mypy-nox.*,pytest] ignore_missing_imports = True -[mypy-openapi_schema_pydantic.*] +[mypy-openapi_pydantic.*] ignore_missing_imports = True [mypy-autopep8.*] diff --git a/poetry.lock b/poetry.lock index eb030a7..9cd58d6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1217,18 +1217,18 @@ files = [ setuptools = "*" [[package]] -name = "openapi-schema-pydantic" -version = "1.2.4" -description = "OpenAPI (v3) specification schema as pydantic class" +name = "openapi-pydantic" +version = "0.4.0" +description = "Pydantic OpenAPI schema implementation" optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8,<4.0" files = [ - {file = "openapi-schema-pydantic-1.2.4.tar.gz", hash = "sha256:3e22cf58b74a69f752cc7e5f1537f6e44164282db2700cbbcd3bb99ddd065196"}, - {file = "openapi_schema_pydantic-1.2.4-py3-none-any.whl", hash = "sha256:a932ecc5dcbb308950282088956e94dea069c9823c84e507d64f6b622222098c"}, + {file = "openapi_pydantic-0.4.0-py3-none-any.whl", hash = "sha256:8f782be72a4792bf6b5bbc4cf694fda2ca0719c0354ee6a062179982544fb5c0"}, + {file = "openapi_pydantic-0.4.0.tar.gz", hash = "sha256:22c43e0da5f479d28e11c083d6d3492e09a6ef9e2b3201ccddbfbc8786db1ffb"}, ] [package.dependencies] -pydantic = ">=1.8.2" +pydantic = ">=1.8" [[package]] name = "orjson" @@ -2299,4 +2299,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = ">=3.11,<3.12" -content-hash = "876193c5f1add6f3cf0886addc927501ad3c9971bf4b67e83e0ecb2fdecf6a90" +content-hash = "99f09ca291ce23cc35cdfb07cc5b4a90964571a0f5f1479271c7440046b6cec8" diff --git a/pyproject.toml b/pyproject.toml index 3477bb2..40a4f69 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ python = ">=3.11,<3.12" httpx = {extras = ["all"], version = "^0.23.0"} pydantic = "^2.6.2" orjson = "^3.7.2" -openapi-schema-pydantic = "^1.2.3" +openapi-pydantic = "^0.4.0" Jinja2 = "^3.1.2" click = "^8.1.3" black = ">=21.10b0" diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index 78f3f39..8dfa745 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -10,7 +10,7 @@ from black import NothingChanged from httpx import ConnectError from httpx import ConnectTimeout -from openapi_schema_pydantic import OpenAPI +from openapi_pydantic import OpenAPI from pydantic import ValidationError from .common import HTTPLibrary diff --git a/src/openapi_python_generator/language_converters/python/api_config_generator.py b/src/openapi_python_generator/language_converters/python/api_config_generator.py index 8b110c1..96d59b8 100644 --- a/src/openapi_python_generator/language_converters/python/api_config_generator.py +++ b/src/openapi_python_generator/language_converters/python/api_config_generator.py @@ -1,6 +1,6 @@ from typing import Optional -from openapi_schema_pydantic import OpenAPI +from openapi_pydantic import OpenAPI from openapi_python_generator.language_converters.python.jinja_config import ( API_CONFIG_TEMPLATE, diff --git a/src/openapi_python_generator/language_converters/python/generator.py b/src/openapi_python_generator/language_converters/python/generator.py index 204d25c..c39ab63 100644 --- a/src/openapi_python_generator/language_converters/python/generator.py +++ b/src/openapi_python_generator/language_converters/python/generator.py @@ -1,6 +1,6 @@ from typing import Optional -from openapi_schema_pydantic import OpenAPI +from openapi_pydantic import OpenAPI from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.api_config_generator import ( diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 4f51e22..f78cc21 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -4,9 +4,9 @@ from typing import Optional import click -from openapi_schema_pydantic import Components -from openapi_schema_pydantic import Reference -from openapi_schema_pydantic import Schema +from openapi_pydantic import Components +from openapi_pydantic import Reference +from openapi_pydantic import Schema from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.jinja_config import ( @@ -230,17 +230,17 @@ def _generate_property_from_reference( if import_model == model_name: type_conv = TypeConversion( original_type=reference.ref, - converted_type=import_model - if required - else 'Optional["' + import_model + '"]', + converted_type=( + import_model if required else 'Optional["' + import_model + '"]' + ), import_types=None, ) else: type_conv = TypeConversion( original_type=reference.ref, - converted_type=import_model - if required - else "Optional[" + import_model + "]", + converted_type=( + import_model if required else "Optional[" + import_model + "]" + ), import_types=[f"from .{import_model} import {import_model}"], ) return Property( diff --git a/src/openapi_python_generator/language_converters/python/service_generator.py b/src/openapi_python_generator/language_converters/python/service_generator.py index 77937f1..b43c8b1 100644 --- a/src/openapi_python_generator/language_converters/python/service_generator.py +++ b/src/openapi_python_generator/language_converters/python/service_generator.py @@ -7,14 +7,14 @@ from typing import Union import click -from openapi_schema_pydantic import MediaType -from openapi_schema_pydantic import Operation -from openapi_schema_pydantic import Parameter -from openapi_schema_pydantic import PathItem -from openapi_schema_pydantic import Reference -from openapi_schema_pydantic import RequestBody -from openapi_schema_pydantic import Response -from openapi_schema_pydantic import Schema +from openapi_pydantic import MediaType +from openapi_pydantic import Operation +from openapi_pydantic import Parameter +from openapi_pydantic import PathItem +from openapi_pydantic import Reference +from openapi_pydantic import RequestBody +from openapi_pydantic import Response +from openapi_pydantic import Schema from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.common import normalize_symbol diff --git a/src/openapi_python_generator/models.py b/src/openapi_python_generator/models.py index bc93206..5c60fa9 100644 --- a/src/openapi_python_generator/models.py +++ b/src/openapi_python_generator/models.py @@ -1,9 +1,9 @@ from typing import List from typing import Optional -from openapi_schema_pydantic import Operation -from openapi_schema_pydantic import PathItem -from openapi_schema_pydantic import Schema +from openapi_pydantic import Operation +from openapi_pydantic import PathItem +from openapi_pydantic import Schema from pydantic import BaseModel diff --git a/tests/conftest.py b/tests/conftest.py index de96a20..08bb43e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,7 +5,7 @@ from typing import Generator import pytest -from openapi_schema_pydantic import OpenAPI +from openapi_pydantic import OpenAPI test_data_folder = Path(__file__).parent / "test_data" diff --git a/tests/test_api_config.py b/tests/test_api_config.py index e7364bc..672899d 100644 --- a/tests/test_api_config.py +++ b/tests/test_api_config.py @@ -1,4 +1,4 @@ -from openapi_schema_pydantic import OpenAPI +from openapi_pydantic import OpenAPI from openapi_python_generator.language_converters.python.api_config_generator import ( generate_api_config, diff --git a/tests/test_model_generator.py b/tests/test_model_generator.py index 3326903..a11822d 100644 --- a/tests/test_model_generator.py +++ b/tests/test_model_generator.py @@ -1,7 +1,7 @@ import pytest -from openapi_schema_pydantic import OpenAPI -from openapi_schema_pydantic import Reference -from openapi_schema_pydantic import Schema +from openapi_pydantic import OpenAPI +from openapi_pydantic import Reference +from openapi_pydantic import Schema from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.model_generator import ( diff --git a/tests/test_service_generator.py b/tests/test_service_generator.py index 7126225..fe08866 100644 --- a/tests/test_service_generator.py +++ b/tests/test_service_generator.py @@ -1,11 +1,11 @@ import pytest -from openapi_schema_pydantic import MediaType -from openapi_schema_pydantic import Operation -from openapi_schema_pydantic import Parameter -from openapi_schema_pydantic import Reference -from openapi_schema_pydantic import RequestBody -from openapi_schema_pydantic import Response -from openapi_schema_pydantic import Schema +from openapi_pydantic import MediaType +from openapi_pydantic import Operation +from openapi_pydantic import Parameter +from openapi_pydantic import Reference +from openapi_pydantic import RequestBody +from openapi_pydantic import Response +from openapi_pydantic import Schema from openapi_python_generator.common import HTTPLibrary from openapi_python_generator.common import library_config_dict From 63ec7968f14a751232a9ffd6cb6c960ecf079421 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Tue, 2 Apr 2024 18:26:26 +0700 Subject: [PATCH 04/28] add traceback for error --- .../language_converters/python/model_generator.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index f78cc21..eb7da59 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -288,7 +288,7 @@ def generate_models(components: Components) -> List[Model]: compile(m.content, "", "exec") models.append(m) except SyntaxError as e: # pragma: no cover - click.echo(f"Error in model {name}: {e}") + click.echo(f"Error in model {name}: {e}\n{e.__traceback__}") continue # pragma: no cover @@ -316,7 +316,9 @@ def generate_models(components: Components) -> List[Model]: try: compile(generated_content, "", "exec") except SyntaxError as e: # pragma: no cover - click.echo(f"Error in model {name}: {e}") # pragma: no cover + click.echo( + f"Error in model {name}: {e}\n{e.__traceback__}" + ) # pragma: no cover models.append( Model( From b8c959e0921d06fbbfd69ac7dd9cc0bfe27b3b9e Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Tue, 2 Apr 2024 18:30:50 +0700 Subject: [PATCH 05/28] fix error print --- .../language_converters/python/model_generator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index eb7da59..d607d6e 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -1,5 +1,6 @@ import itertools import re +import traceback from typing import List from typing import Optional @@ -288,7 +289,7 @@ def generate_models(components: Components) -> List[Model]: compile(m.content, "", "exec") models.append(m) except SyntaxError as e: # pragma: no cover - click.echo(f"Error in model {name}: {e}\n{e.__traceback__}") + click.echo(f"Error in model {name}: {traceback.format_exc()}") continue # pragma: no cover @@ -317,7 +318,7 @@ def generate_models(components: Components) -> List[Model]: compile(generated_content, "", "exec") except SyntaxError as e: # pragma: no cover click.echo( - f"Error in model {name}: {e}\n{e.__traceback__}" + f"Error in model {name}: {traceback.format_exc()}" ) # pragma: no cover models.append( From 908548a09859be1afdf6e503714979e8712e6acf Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Tue, 2 Apr 2024 18:37:24 +0700 Subject: [PATCH 06/28] fix enum template --- .../language_converters/python/templates/enum.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 b/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 index f88bdd6..a2267c2 100644 --- a/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 @@ -4,6 +4,6 @@ class {{ name }}(str, Enum): {% for enumItem in enum %} {% if enumItem is string %} - {{ enumItem.upper() }} = '{{ enumItem }}'{% else %} + {{ enumItem.upper().replace("-", "_") }} = '{{ enumItem }}'{% else %} value_{{ enumItem }} = {{ enumItem }}{% endif %} {% endfor %} From c8cc8d9f8aa8ec3fbe6f09eb0d542f018c61c976 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Tue, 2 Apr 2024 18:39:00 +0700 Subject: [PATCH 07/28] fix templates --- .../python/templates/aiohttp.jinja2 | 6 +++--- .../python/templates/apiconfig.jinja2 | 20 ++----------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 index 6f2eb16..a9d4792 100644 --- a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 @@ -31,9 +31,9 @@ async def {{ operation_id }}({{ params }} api_config_override : Optional[APIConf {% endif %} {% endif %} ) as inital_response: - if inital_response.status != {{ return_type.status_code }}: - raise HTTPException(inital_response.status, f'{{ operationId }} failed with status code: {inital_response.status}') response = await inital_response.json() + if inital_response.status != {{ return_type.status_code }}: + raise HTTPException(inital_response.status, f'{ response }') {% if return_type.type is none or return_type.type.converted_type is none %} return None @@ -45,4 +45,4 @@ async def {{ operation_id }}({{ params }} api_config_override : Optional[APIConf {%- endif %} {% else %} return response -{% endif %} +{% endif %} \ No newline at end of file diff --git a/src/openapi_python_generator/language_converters/python/templates/apiconfig.jinja2 b/src/openapi_python_generator/language_converters/python/templates/apiconfig.jinja2 index b5bfde7..abec394 100644 --- a/src/openapi_python_generator/language_converters/python/templates/apiconfig.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/apiconfig.jinja2 @@ -1,32 +1,16 @@ -{% if env_token_name is not none %}import os{% endif %} - from pydantic import BaseModel, Field from typing import Optional, Union class APIConfig(BaseModel): - base_path: str = {% if servers|length > 0 %} '{{ servers[0].url }}' {% else %} 'NO SERVER' {% endif %} - + base_path: str = "" verify: Union[bool, str] = True -{% if env_token_name is none %} access_token : Optional[str] = None -{% endif %} def get_access_token(self) -> Optional[str]: -{% if env_token_name is not none %} - try: - return os.environ['{{ env_token_name }}'] - except KeyError: - return None -{% else %} return self.access_token -{% endif %} def set_access_token(self, value : str): -{% if env_token_name is not none %} - raise Exception("This client was generated with an environment variable for the access token. Please set the environment variable '{{ env_token_name }}' to the access token.") -{% else %} self.access_token = value -{% endif %} class HTTPException(Exception): def __init__(self, status_code: int, message: str): @@ -35,4 +19,4 @@ class HTTPException(Exception): super().__init__(f"{status_code} {message}") def __str__(self): - return f"{self.status_code} {self.message}" + return f"{self.status_code} {self.message}" \ No newline at end of file From db37360168938f8a7c6e82e1cfd7609f7d7178a9 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Thu, 2 May 2024 19:04:24 +0700 Subject: [PATCH 08/28] fix --- .../language_converters/python/templates/aiohttp.jinja2 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 index a9d4792..5ad0dd0 100644 --- a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 @@ -31,7 +31,11 @@ async def {{ operation_id }}({{ params }} api_config_override : Optional[APIConf {% endif %} {% endif %} ) as inital_response: - response = await inital_response.json() + try: + response = await inital_response.json() + except aiohttp.exceptions.ContentTypeError: + response_text = await inital_response.text() + raise HTTPException(inital_response.status, f'Invalid response from server: { response_text}') if inital_response.status != {{ return_type.status_code }}: raise HTTPException(inital_response.status, f'{ response }') From 352489c818ecf06e4be7810a9902ecdefc1573a0 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Thu, 2 May 2024 19:07:05 +0700 Subject: [PATCH 09/28] fix --- .../language_converters/python/templates/aiohttp.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 index 5ad0dd0..db5c5e8 100644 --- a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 @@ -33,7 +33,7 @@ async def {{ operation_id }}({{ params }} api_config_override : Optional[APIConf ) as inital_response: try: response = await inital_response.json() - except aiohttp.exceptions.ContentTypeError: + except aiohttp.ContentTypeError: response_text = await inital_response.text() raise HTTPException(inital_response.status, f'Invalid response from server: { response_text}') if inital_response.status != {{ return_type.status_code }}: From b984c17513b5140cd52306dffbd222ca72bf0b03 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Fri, 3 May 2024 12:44:13 +0700 Subject: [PATCH 10/28] fix --- .../language_converters/python/model_generator.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index d607d6e..e511594 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -272,10 +272,13 @@ def generate_models(components: Components) -> List[Model]: name = common.normalize_symbol(schema_name) if schema_or_reference.enum is not None: value_dict = schema_or_reference.dict() - regex = re.compile(r"[\s\/=\*\+]+") + # regex = re.compile(r"[\s\/=\*\+]+") + # value_dict["enum"] = [ + # re.sub(regex, "_", i) if isinstance(i, str) else f"value_{i}" + # for i in value_dict["enum"] + # ] value_dict["enum"] = [ - re.sub(regex, "_", i) if isinstance(i, str) else f"value_{i}" - for i in value_dict["enum"] + i if isinstance(i, str) else f"value_{i}" for i in value_dict["enum"] ] m = Model( file_name=name, From 63de0919e7a04312cbb5f12441564cfc67f3c973 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Fri, 3 May 2024 12:44:13 +0700 Subject: [PATCH 11/28] fix enum --- .../language_converters/python/model_generator.py | 2 +- .../language_converters/python/templates/enum.jinja2 | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index d607d6e..0b2486b 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -274,7 +274,7 @@ def generate_models(components: Components) -> List[Model]: value_dict = schema_or_reference.dict() regex = re.compile(r"[\s\/=\*\+]+") value_dict["enum"] = [ - re.sub(regex, "_", i) if isinstance(i, str) else f"value_{i}" + (re.sub(regex, "_", i) if isinstance(i, str) else f"value_{i}", i) for i in value_dict["enum"] ] m = Model( diff --git a/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 b/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 index a2267c2..8e658c8 100644 --- a/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 @@ -3,7 +3,7 @@ from enum import Enum class {{ name }}(str, Enum): {% for enumItem in enum %} - {% if enumItem is string %} - {{ enumItem.upper().replace("-", "_") }} = '{{ enumItem }}'{% else %} - value_{{ enumItem }} = {{ enumItem }}{% endif %} + {% if enumItem[0] is string %} + {{ enumItem[0].upper().replace("-", "_") }} = '{{ enumItem[1] }}'{% else %} + value_{{ enumItem[0] }} = {{ enumItem[1] }}{% endif %} {% endfor %} From 0db01d37231d891efc9c5b19143681cc1aee04ec Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Fri, 3 May 2024 12:52:17 +0700 Subject: [PATCH 12/28] fix --- .../language_converters/python/model_generator.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 10975e4..0b2486b 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -277,7 +277,6 @@ def generate_models(components: Components) -> List[Model]: (re.sub(regex, "_", i) if isinstance(i, str) else f"value_{i}", i) for i in value_dict["enum"] ] - m = Model( file_name=name, content=jinja_env.get_template(ENUM_TEMPLATE).render( From b1f8456e930072d2f1f5404152e5842f9f6ed6c9 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sat, 1 Jun 2024 00:50:18 +0700 Subject: [PATCH 13/28] fix --- .vscode/launch.json | 16 + poetry.lock | 1034 ++++++++++------- pyproject.toml | 3 +- src/openapi_python_generator/generate_data.py | 19 +- 4 files changed, 646 insertions(+), 426 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b21da67 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Test", + "type": "debugpy", + "request": "launch", + "program": "${workspaceFolder}/src/openapi_python_generator", + "args": ["--library", "aiohttp", "./openapi.json", "test_api"], + "cwd": "${workspaceFolder}/tests/test_data" + } + ] +} \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 9cd58d6..eab6d06 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,88 +1,88 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "aiohttp" -version = "3.9.3" +version = "3.9.5" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" files = [ - {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:939677b61f9d72a4fa2a042a5eee2a99a24001a67c13da113b2e30396567db54"}, - {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f5cd333fcf7590a18334c90f8c9147c837a6ec8a178e88d90a9b96ea03194cc"}, - {file = "aiohttp-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82e6aa28dd46374f72093eda8bcd142f7771ee1eb9d1e223ff0fa7177a96b4a5"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f56455b0c2c7cc3b0c584815264461d07b177f903a04481dfc33e08a89f0c26b"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bca77a198bb6e69795ef2f09a5f4c12758487f83f33d63acde5f0d4919815768"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e083c285857b78ee21a96ba1eb1b5339733c3563f72980728ca2b08b53826ca5"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab40e6251c3873d86ea9b30a1ac6d7478c09277b32e14745d0d3c6e76e3c7e29"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df822ee7feaaeffb99c1a9e5e608800bd8eda6e5f18f5cfb0dc7eeb2eaa6bbec"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:acef0899fea7492145d2bbaaaec7b345c87753168589cc7faf0afec9afe9b747"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cd73265a9e5ea618014802ab01babf1940cecb90c9762d8b9e7d2cc1e1969ec6"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a78ed8a53a1221393d9637c01870248a6f4ea5b214a59a92a36f18151739452c"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6b0e029353361f1746bac2e4cc19b32f972ec03f0f943b390c4ab3371840aabf"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7cf5c9458e1e90e3c390c2639f1017a0379a99a94fdfad3a1fd966a2874bba52"}, - {file = "aiohttp-3.9.3-cp310-cp310-win32.whl", hash = "sha256:3e59c23c52765951b69ec45ddbbc9403a8761ee6f57253250c6e1536cacc758b"}, - {file = "aiohttp-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:055ce4f74b82551678291473f66dc9fb9048a50d8324278751926ff0ae7715e5"}, - {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6b88f9386ff1ad91ace19d2a1c0225896e28815ee09fc6a8932fded8cda97c3d"}, - {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c46956ed82961e31557b6857a5ca153c67e5476972e5f7190015018760938da2"}, - {file = "aiohttp-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:07b837ef0d2f252f96009e9b8435ec1fef68ef8b1461933253d318748ec1acdc"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad46e6f620574b3b4801c68255492e0159d1712271cc99d8bdf35f2043ec266"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ed3e046ea7b14938112ccd53d91c1539af3e6679b222f9469981e3dac7ba1ce"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:039df344b45ae0b34ac885ab5b53940b174530d4dd8a14ed8b0e2155b9dddccb"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7943c414d3a8d9235f5f15c22ace69787c140c80b718dcd57caaade95f7cd93b"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84871a243359bb42c12728f04d181a389718710129b36b6aad0fc4655a7647d4"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5eafe2c065df5401ba06821b9a054d9cb2848867f3c59801b5d07a0be3a380ae"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9d3c9b50f19704552f23b4eaea1fc082fdd82c63429a6506446cbd8737823da3"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:f033d80bc6283092613882dfe40419c6a6a1527e04fc69350e87a9df02bbc283"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2c895a656dd7e061b2fd6bb77d971cc38f2afc277229ce7dd3552de8313a483e"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f5a71d25cd8106eab05f8704cd9167b6e5187bcdf8f090a66c6d88b634802b4"}, - {file = "aiohttp-3.9.3-cp311-cp311-win32.whl", hash = "sha256:50fca156d718f8ced687a373f9e140c1bb765ca16e3d6f4fe116e3df7c05b2c5"}, - {file = "aiohttp-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:5fe9ce6c09668063b8447f85d43b8d1c4e5d3d7e92c63173e6180b2ac5d46dd8"}, - {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:38a19bc3b686ad55804ae931012f78f7a534cce165d089a2059f658f6c91fa60"}, - {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:770d015888c2a598b377bd2f663adfd947d78c0124cfe7b959e1ef39f5b13869"}, - {file = "aiohttp-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee43080e75fc92bf36219926c8e6de497f9b247301bbf88c5c7593d931426679"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52df73f14ed99cee84865b95a3d9e044f226320a87af208f068ecc33e0c35b96"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc9b311743a78043b26ffaeeb9715dc360335e5517832f5a8e339f8a43581e4d"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b955ed993491f1a5da7f92e98d5dad3c1e14dc175f74517c4e610b1f2456fb11"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:504b6981675ace64c28bf4a05a508af5cde526e36492c98916127f5a02354d53"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6fe5571784af92b6bc2fda8d1925cccdf24642d49546d3144948a6a1ed58ca5"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ba39e9c8627edc56544c8628cc180d88605df3892beeb2b94c9bc857774848ca"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e5e46b578c0e9db71d04c4b506a2121c0cb371dd89af17a0586ff6769d4c58c1"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:938a9653e1e0c592053f815f7028e41a3062e902095e5a7dc84617c87267ebd5"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:c3452ea726c76e92f3b9fae4b34a151981a9ec0a4847a627c43d71a15ac32aa6"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ff30218887e62209942f91ac1be902cc80cddb86bf00fbc6783b7a43b2bea26f"}, - {file = "aiohttp-3.9.3-cp312-cp312-win32.whl", hash = "sha256:38f307b41e0bea3294a9a2a87833191e4bcf89bb0365e83a8be3a58b31fb7f38"}, - {file = "aiohttp-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:b791a3143681a520c0a17e26ae7465f1b6f99461a28019d1a2f425236e6eedb5"}, - {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ed621426d961df79aa3b963ac7af0d40392956ffa9be022024cd16297b30c8c"}, - {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7f46acd6a194287b7e41e87957bfe2ad1ad88318d447caf5b090012f2c5bb528"}, - {file = "aiohttp-3.9.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feeb18a801aacb098220e2c3eea59a512362eb408d4afd0c242044c33ad6d542"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f734e38fd8666f53da904c52a23ce517f1b07722118d750405af7e4123933511"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b40670ec7e2156d8e57f70aec34a7216407848dfe6c693ef131ddf6e76feb672"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdd215b7b7fd4a53994f238d0f46b7ba4ac4c0adb12452beee724ddd0743ae5d"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:017a21b0df49039c8f46ca0971b3a7fdc1f56741ab1240cb90ca408049766168"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99abf0bba688259a496f966211c49a514e65afa9b3073a1fcee08856e04425b"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:648056db9a9fa565d3fa851880f99f45e3f9a771dd3ff3bb0c048ea83fb28194"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8aacb477dc26797ee089721536a292a664846489c49d3ef9725f992449eda5a8"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:522a11c934ea660ff8953eda090dcd2154d367dec1ae3c540aff9f8a5c109ab4"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5bce0dc147ca85caa5d33debc4f4d65e8e8b5c97c7f9f660f215fa74fc49a321"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b4af9f25b49a7be47c0972139e59ec0e8285c371049df1a63b6ca81fdd216a2"}, - {file = "aiohttp-3.9.3-cp38-cp38-win32.whl", hash = "sha256:298abd678033b8571995650ccee753d9458dfa0377be4dba91e4491da3f2be63"}, - {file = "aiohttp-3.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:69361bfdca5468c0488d7017b9b1e5ce769d40b46a9f4a2eed26b78619e9396c"}, - {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0fa43c32d1643f518491d9d3a730f85f5bbaedcbd7fbcae27435bb8b7a061b29"}, - {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:835a55b7ca49468aaaac0b217092dfdff370e6c215c9224c52f30daaa735c1c1"}, - {file = "aiohttp-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06a9b2c8837d9a94fae16c6223acc14b4dfdff216ab9b7202e07a9a09541168f"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abf151955990d23f84205286938796c55ff11bbfb4ccfada8c9c83ae6b3c89a3"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59c26c95975f26e662ca78fdf543d4eeaef70e533a672b4113dd888bd2423caa"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f95511dd5d0e05fd9728bac4096319f80615aaef4acbecb35a990afebe953b0e"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:595f105710293e76b9dc09f52e0dd896bd064a79346234b521f6b968ffdd8e58"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7c8b816c2b5af5c8a436df44ca08258fc1a13b449393a91484225fcb7545533"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f1088fa100bf46e7b398ffd9904f4808a0612e1d966b4aa43baa535d1b6341eb"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f59dfe57bb1ec82ac0698ebfcdb7bcd0e99c255bd637ff613760d5f33e7c81b3"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:361a1026c9dd4aba0109e4040e2aecf9884f5cfe1b1b1bd3d09419c205e2e53d"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:363afe77cfcbe3a36353d8ea133e904b108feea505aa4792dad6585a8192c55a"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e2c45c208c62e955e8256949eb225bd8b66a4c9b6865729a786f2aa79b72e9d"}, - {file = "aiohttp-3.9.3-cp39-cp39-win32.whl", hash = "sha256:f7217af2e14da0856e082e96ff637f14ae45c10a5714b63c77f26d8884cf1051"}, - {file = "aiohttp-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:27468897f628c627230dba07ec65dc8d0db566923c48f29e084ce382119802bc"}, - {file = "aiohttp-3.9.3.tar.gz", hash = "sha256:90842933e5d1ff760fae6caca4b2b3edba53ba8f4b71e95dacf2818a2aca06f7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae79c1bc12c34082d92bf9422764f799aee4746fd7a392db46b7fd357d4a17a"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d3ebb9e1316ec74277d19c5f482f98cc65a73ccd5430540d6d11682cd857430"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84dabd95154f43a2ea80deffec9cb44d2e301e38a0c9d331cc4aa0166fe28ae3"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a02fbeca6f63cb1f0475c799679057fc9268b77075ab7cf3f1c600e81dd46b"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:714d4e5231fed4ba2762ed489b4aec07b2b9953cf4ee31e9871caac895a839c0"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7a6a8354f1b62e15d48e04350f13e726fa08b62c3d7b8401c0a1314f02e3558"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c413016880e03e69d166efb5a1a95d40f83d5a3a648d16486592c49ffb76d0db"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ff84aeb864e0fac81f676be9f4685f0527b660f1efdc40dcede3c251ef1e867f"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ad7f2919d7dac062f24d6f5fe95d401597fbb015a25771f85e692d043c9d7832"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:702e2c7c187c1a498a4e2b03155d52658fdd6fda882d3d7fbb891a5cf108bb10"}, + {file = "aiohttp-3.9.5-cp310-cp310-win32.whl", hash = "sha256:67c3119f5ddc7261d47163ed86d760ddf0e625cd6246b4ed852e82159617b5fb"}, + {file = "aiohttp-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:471f0ef53ccedec9995287f02caf0c068732f026455f07db3f01a46e49d76bbb"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75"}, + {file = "aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c7a4b7a6cf5b6eb11e109a9755fd4fda7d57395f8c575e166d363b9fc3ec4678"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0a158704edf0abcac8ac371fbb54044f3270bdbc93e254a82b6c82be1ef08f3c"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d153f652a687a8e95ad367a86a61e8d53d528b0530ef382ec5aaf533140ed00f"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a6a97d9771cb48ae16979c3a3a9a18b600a8505b1115cfe354dfb2054468b4"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60cdbd56f4cad9f69c35eaac0fbbdf1f77b0ff9456cebd4902f3dd1cf096464c"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8676e8fd73141ded15ea586de0b7cda1542960a7b9ad89b2b06428e97125d4fa"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da00da442a0e31f1c69d26d224e1efd3a1ca5bcbf210978a2ca7426dfcae9f58"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f634d540dd099c262e9f887c8bbacc959847cfe5da7a0e2e1cf3f14dbf2daf"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:320e8618eda64e19d11bdb3bd04ccc0a816c17eaecb7e4945d01deee2a22f95f"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2faa61a904b83142747fc6a6d7ad8fccff898c849123030f8e75d5d967fd4a81"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8c64a6dc3fe5db7b1b4d2b5cb84c4f677768bdc340611eca673afb7cf416ef5a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da"}, + {file = "aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59"}, + {file = "aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:694d828b5c41255e54bc2dddb51a9f5150b4eefa9886e38b52605a05d96566e8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4558e5012ee03d2638c681e156461d37b7a113fe13970d438d95d10173d25f78"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbc053ac75ccc63dc3a3cc547b98c7258ec35a215a92bd9f983e0aac95d3d5b"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4109adee842b90671f1b689901b948f347325045c15f46b39797ae1bf17019de"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6ea1a5b409a85477fd8e5ee6ad8f0e40bf2844c270955e09360418cfd09abac"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c2890ca8c59ee683fd09adf32321a40fe1cf164e3387799efb2acebf090c11"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3916c8692dbd9d55c523374a3b8213e628424d19116ac4308e434dbf6d95bbdd"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8d1964eb7617907c792ca00b341b5ec3e01ae8c280825deadbbd678447b127e1"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5ab8e1f6bee051a4bf6195e38a5c13e5e161cb7bad83d8854524798bd9fcd6e"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52c27110f3862a1afbcb2af4281fc9fdc40327fa286c4625dfee247c3ba90156"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7f64cbd44443e80094309875d4f9c71d0401e966d191c3d469cde4642bc2e031"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b4f72fbb66279624bfe83fd5eb6aea0022dad8eec62b71e7bf63ee1caadeafe"}, + {file = "aiohttp-3.9.5-cp38-cp38-win32.whl", hash = "sha256:6380c039ec52866c06d69b5c7aad5478b24ed11696f0e72f6b807cfb261453da"}, + {file = "aiohttp-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:da22dab31d7180f8c3ac7c7635f3bcd53808f374f6aa333fe0b0b9e14b01f91a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1732102949ff6087589408d76cd6dea656b93c896b011ecafff418c9661dc4ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6021d296318cb6f9414b48e6a439a7f5d1f665464da507e8ff640848ee2a58a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:239f975589a944eeb1bad26b8b140a59a3a320067fb3cd10b75c3092405a1372"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b7b30258348082826d274504fbc7c849959f1989d86c29bc355107accec6cfb"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2adf5c87ff6d8b277814a28a535b59e20bfea40a101db6b3bdca7e9926bc24"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a3d838441bebcf5cf442700e3963f58b5c33f015341f9ea86dcd7d503c07e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3a1ae66e3d0c17cf65c08968a5ee3180c5a95920ec2731f53343fac9bad106"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c69e77370cce2d6df5d12b4e12bdcca60c47ba13d1cbbc8645dd005a20b738b"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf56238f4bbf49dab8c2dc2e6b1b68502b1e88d335bea59b3f5b9f4c001475"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d1469f228cd9ffddd396d9948b8c9cd8022b6d1bf1e40c6f25b0fb90b4f893ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:45731330e754f5811c314901cebdf19dd776a44b31927fa4b4dbecab9e457b0c"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3fcb4046d2904378e3aeea1df51f697b0467f2aac55d232c87ba162709478c46"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8cf142aa6c1a751fcb364158fd710b8a9be874b81889c2bd13aa8893197455e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-win32.whl", hash = "sha256:7b179eea70833c8dee51ec42f3b4097bd6370892fa93f510f76762105568cf09"}, + {file = "aiohttp-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:38d80498e2e169bc61418ff36170e0aad0cd268da8b38a17c4cf29d254a8b3f1"}, + {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"}, ] [package.dependencies] @@ -122,24 +122,24 @@ files = [ [[package]] name = "annotated-types" -version = "0.6.0" +version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" files = [ - {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, - {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] [[package]] name = "anyio" -version = "4.3.0" +version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" files = [ - {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, - {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, ] [package.dependencies] @@ -170,15 +170,29 @@ tests = ["attrs[tests-no-zope]", "zope-interface"] tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +[[package]] +name = "authlib" +version = "1.3.0" +description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Authlib-1.3.0-py2.py3-none-any.whl", hash = "sha256:9637e4de1fb498310a56900b3e2043a206b03cb11c05422014b0302cbc814be3"}, + {file = "Authlib-1.3.0.tar.gz", hash = "sha256:959ea62a5b7b5123c5059758296122b57cd2585ae2ed1c0622c21b371ffdae06"}, +] + +[package.dependencies] +cryptography = "*" + [[package]] name = "babel" -version = "2.14.0" +version = "2.15.0" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, - {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, ] [package.extras] @@ -231,33 +245,33 @@ lxml = ["lxml"] [[package]] name = "black" -version = "24.3.0" +version = "24.4.2" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, - {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, - {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, - {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, - {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"}, - {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"}, - {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"}, - {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"}, - {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"}, - {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"}, - {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"}, - {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"}, - {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"}, - {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"}, - {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"}, - {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"}, - {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, - {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, - {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, - {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, - {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, - {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, + {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, + {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, + {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, + {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, + {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, + {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, + {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, + {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, + {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, + {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, + {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, + {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, + {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, + {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, + {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, + {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, + {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, + {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, + {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, + {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, + {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, + {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, ] [package.dependencies] @@ -284,6 +298,70 @@ files = [ {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "cfgv" version = "3.4.0" @@ -481,6 +559,60 @@ files = [ [package.extras] toml = ["tomli"] +[[package]] +name = "cryptography" +version = "42.0.7" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a987f840718078212fdf4504d0fd4c6effe34a7e4740378e59d47696e8dfb477"}, + {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd13b5e9b543532453de08bcdc3cc7cebec6f9883e886fd20a92f26940fd3e7a"}, + {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a79165431551042cc9d1d90e6145d5d0d3ab0f2d66326c201d9b0e7f5bf43604"}, + {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a47787a5e3649008a1102d3df55424e86606c9bae6fb77ac59afe06d234605f8"}, + {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:02c0eee2d7133bdbbc5e24441258d5d2244beb31da5ed19fbb80315f4bbbff55"}, + {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e44507bf8d14b36b8389b226665d597bc0f18ea035d75b4e53c7b1ea84583cc"}, + {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7f8b25fa616d8b846aef64b15c606bb0828dbc35faf90566eb139aa9cff67af2"}, + {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:93a3209f6bb2b33e725ed08ee0991b92976dfdcf4e8b38646540674fc7508e13"}, + {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e6b8f1881dac458c34778d0a424ae5769de30544fc678eac51c1c8bb2183e9da"}, + {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3de9a45d3b2b7d8088c3fbf1ed4395dfeff79d07842217b38df14ef09ce1d8d7"}, + {file = "cryptography-42.0.7-cp37-abi3-win32.whl", hash = "sha256:789caea816c6704f63f6241a519bfa347f72fbd67ba28d04636b7c6b7da94b0b"}, + {file = "cryptography-42.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:8cb8ce7c3347fcf9446f201dc30e2d5a3c898d009126010cbd1f443f28b52678"}, + {file = "cryptography-42.0.7-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:a3a5ac8b56fe37f3125e5b72b61dcde43283e5370827f5233893d461b7360cd4"}, + {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:779245e13b9a6638df14641d029add5dc17edbef6ec915688f3acb9e720a5858"}, + {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d563795db98b4cd57742a78a288cdbdc9daedac29f2239793071fe114f13785"}, + {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:31adb7d06fe4383226c3e963471f6837742889b3c4caa55aac20ad951bc8ffda"}, + {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:efd0bf5205240182e0f13bcaea41be4fdf5c22c5129fc7ced4a0282ac86998c9"}, + {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a9bc127cdc4ecf87a5ea22a2556cab6c7eda2923f84e4f3cc588e8470ce4e42e"}, + {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3577d029bc3f4827dd5bf8bf7710cac13527b470bbf1820a3f394adb38ed7d5f"}, + {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2e47577f9b18723fa294b0ea9a17d5e53a227867a0a4904a1a076d1646d45ca1"}, + {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1a58839984d9cb34c855197043eaae2c187d930ca6d644612843b4fe8513c886"}, + {file = "cryptography-42.0.7-cp39-abi3-win32.whl", hash = "sha256:e6b79d0adb01aae87e8a44c2b64bc3f3fe59515280e00fb6d57a7267a2583cda"}, + {file = "cryptography-42.0.7-cp39-abi3-win_amd64.whl", hash = "sha256:16268d46086bb8ad5bf0a2b5544d8a9ed87a0e33f5e77dd3c3301e63d941a83b"}, + {file = "cryptography-42.0.7-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2954fccea107026512b15afb4aa664a5640cd0af630e2ee3962f2602693f0c82"}, + {file = "cryptography-42.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:362e7197754c231797ec45ee081f3088a27a47c6c01eff2ac83f60f85a50fe60"}, + {file = "cryptography-42.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f698edacf9c9e0371112792558d2f705b5645076cc0aaae02f816a0171770fd"}, + {file = "cryptography-42.0.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5482e789294854c28237bba77c4c83be698be740e31a3ae5e879ee5444166582"}, + {file = "cryptography-42.0.7-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e9b2a6309f14c0497f348d08a065d52f3020656f675819fc405fb63bbcd26562"}, + {file = "cryptography-42.0.7-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d8e3098721b84392ee45af2dd554c947c32cc52f862b6a3ae982dbb90f577f14"}, + {file = "cryptography-42.0.7-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c65f96dad14f8528a447414125e1fc8feb2ad5a272b8f68477abbcc1ea7d94b9"}, + {file = "cryptography-42.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36017400817987670037fbb0324d71489b6ead6231c9604f8fc1f7d008087c68"}, + {file = "cryptography-42.0.7.tar.gz", hash = "sha256:ecbfbc00bf55888edda9868a4cf927205de8499e7fabe6c050322298382953f2"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + [[package]] name = "darglint" version = "1.8.1" @@ -505,32 +637,34 @@ files = [ [[package]] name = "docutils" -version = "0.20.1" +version = "0.21.2" description = "Docutils -- Python Documentation Utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, - {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, ] [[package]] name = "dparse" -version = "0.6.3" +version = "0.6.4b0" description = "A parser for Python dependency files" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "dparse-0.6.3-py3-none-any.whl", hash = "sha256:0d8fe18714056ca632d98b24fbfc4e9791d4e47065285ab486182288813a5318"}, - {file = "dparse-0.6.3.tar.gz", hash = "sha256:27bb8b4bcaefec3997697ba3f6e06b2447200ba273c0b085c3d012a04571b528"}, + {file = "dparse-0.6.4b0-py3-none-any.whl", hash = "sha256:592ff183348b8a5ea0a18442a7965e29445d3a26063654ec2c7e8ef42cd5753c"}, + {file = "dparse-0.6.4b0.tar.gz", hash = "sha256:f8d49b41a527f3d16a269f854e6665245b325e50e41d2c213810cb984553e5c8"}, ] [package.dependencies] packaging = "*" [package.extras] +all = ["dparse[conda]", "dparse[pipenv]", "dparse[poetry]"] conda = ["pyyaml"] -pipenv = ["pipenv (<=2022.12.19)"] +pipenv = ["pipenv"] +poetry = ["poetry"] [[package]] name = "fastapi" @@ -553,18 +687,18 @@ all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)" [[package]] name = "filelock" -version = "3.13.1" +version = "3.14.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, + {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, + {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] typing = ["typing-extensions (>=4.8)"] [[package]] @@ -600,13 +734,13 @@ flake8 = ">=5.0.0" [[package]] name = "flake8-bugbear" -version = "24.2.6" +version = "24.4.26" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." optional = false python-versions = ">=3.8.1" files = [ - {file = "flake8-bugbear-24.2.6.tar.gz", hash = "sha256:f9cb5f2a9e792dd80ff68e89a14c12eed8620af8b41a49d823b7a33064ac9658"}, - {file = "flake8_bugbear-24.2.6-py3-none-any.whl", hash = "sha256:663ef5de80cd32aacd39d362212983bc4636435a6f83700b4ed35acbd0b7d1b8"}, + {file = "flake8_bugbear-24.4.26-py3-none-any.whl", hash = "sha256:cb430dd86bc821d79ccc0b030789a9c87a47a369667f12ba06e80f11305e8258"}, + {file = "flake8_bugbear-24.4.26.tar.gz", hash = "sha256:ff8d4ba5719019ebf98e754624c30c05cef0dadcf18a65d91c7567300e52a130"}, ] [package.dependencies] @@ -738,20 +872,20 @@ files = [ [[package]] name = "furo" -version = "2024.1.29" +version = "2024.5.6" description = "A clean customisable Sphinx documentation theme." optional = false python-versions = ">=3.8" files = [ - {file = "furo-2024.1.29-py3-none-any.whl", hash = "sha256:3548be2cef45a32f8cdc0272d415fcb3e5fa6a0eb4ddfe21df3ecf1fe45a13cf"}, - {file = "furo-2024.1.29.tar.gz", hash = "sha256:4d6b2fe3f10a6e36eb9cc24c1e7beb38d7a23fc7b3c382867503b7fcac8a1e02"}, + {file = "furo-2024.5.6-py3-none-any.whl", hash = "sha256:490a00d08c0a37ecc90de03ae9227e8eb5d6f7f750edf9807f398a2bdf2358de"}, + {file = "furo-2024.5.6.tar.gz", hash = "sha256:81f205a6605ebccbb883350432b4831c0196dd3d1bc92f61e1f459045b3d2b0b"}, ] [package.dependencies] beautifulsoup4 = "*" pygments = ">=2.7" sphinx = ">=6.0,<8.0" -sphinx-basic-ng = "*" +sphinx-basic-ng = ">=1.0.0.beta2" [[package]] name = "h11" @@ -766,57 +900,58 @@ files = [ [[package]] name = "httpcore" -version = "0.16.3" +version = "1.0.5" description = "A minimal low-level HTTP client." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"}, - {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"}, + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, ] [package.dependencies] -anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = "==1.*" [package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" -version = "0.23.3" +version = "0.27.0" description = "The next generation HTTP client." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"}, - {file = "httpx-0.23.3.tar.gz", hash = "sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9"}, + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, ] [package.dependencies] +anyio = "*" certifi = "*" -httpcore = ">=0.15.0,<0.17.0" -rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]} +httpcore = "==1.*" +idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<13)"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] [[package]] name = "identify" -version = "2.5.35" +version = "2.5.36" description = "File identification library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.35-py2.py3-none-any.whl", hash = "sha256:c4de0081837b211594f8e877a6b4fad7ca32bbfc1a9307fdd61c28bfe923f13e"}, - {file = "identify-2.5.35.tar.gz", hash = "sha256:10a7ca245cfcd756a554a7288159f72ff105ad233c7c4b9c6f0f4d108f5f6791"}, + {file = "identify-2.5.36-py2.py3-none-any.whl", hash = "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa"}, + {file = "identify-2.5.36.tar.gz", hash = "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"}, ] [package.extras] @@ -824,13 +959,13 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.6" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -871,13 +1006,13 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -979,6 +1114,25 @@ files = [ {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] +[[package]] +name = "marshmallow" +version = "3.21.2" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.8" +files = [ + {file = "marshmallow-3.21.2-py3-none-any.whl", hash = "sha256:70b54a6282f4704d12c0a41599682c5c5450e843b9ec406308653b47c59648a1"}, + {file = "marshmallow-3.21.2.tar.gz", hash = "sha256:82408deadd8b33d56338d2182d455db632c6313aa2af61916672146bb32edc56"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] +docs = ["alabaster (==0.7.16)", "autodocsumm (==0.2.12)", "sphinx (==7.3.7)", "sphinx-issues (==4.1.0)", "sphinx-version-warning (==1.1.2)"] +tests = ["pytest", "pytz", "simplejson"] + [[package]] name = "mccabe" version = "0.7.0" @@ -992,13 +1146,13 @@ files = [ [[package]] name = "mdit-py-plugins" -version = "0.4.0" +version = "0.4.1" description = "Collection of plugins for markdown-it-py" optional = false python-versions = ">=3.8" files = [ - {file = "mdit_py_plugins-0.4.0-py3-none-any.whl", hash = "sha256:b51b3bb70691f57f974e257e367107857a93b36f322a9e6d44ca5bf28ec2def9"}, - {file = "mdit_py_plugins-0.4.0.tar.gz", hash = "sha256:d8ab27e9aed6c38aa716819fedfde15ca275715955f8a185a8e1cf90fb1d2c1b"}, + {file = "mdit_py_plugins-0.4.1-py3-none-any.whl", hash = "sha256:1020dfe4e6bfc2c79fb49ae4e3f5b297f5ccd20f010187acc52af2921e27dc6a"}, + {file = "mdit_py_plugins-0.4.1.tar.gz", hash = "sha256:834b8ac23d1cd60cec703646ffd22ae97b7955a6d596eb1d304be1e251ae499c"}, ] [package.dependencies] @@ -1121,38 +1275,38 @@ files = [ [[package]] name = "mypy" -version = "1.9.0" +version = "1.10.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f"}, - {file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed"}, - {file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150"}, - {file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374"}, - {file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03"}, - {file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3"}, - {file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc"}, - {file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129"}, - {file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612"}, - {file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3"}, - {file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd"}, - {file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6"}, - {file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185"}, - {file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913"}, - {file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6"}, - {file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b"}, - {file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2"}, - {file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e"}, - {file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04"}, - {file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89"}, - {file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02"}, - {file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4"}, - {file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d"}, - {file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf"}, - {file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9"}, - {file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e"}, - {file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"}, + {file = "mypy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da1cbf08fb3b851ab3b9523a884c232774008267b1f83371ace57f412fe308c2"}, + {file = "mypy-1.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:12b6bfc1b1a66095ab413160a6e520e1dc076a28f3e22f7fb25ba3b000b4ef99"}, + {file = "mypy-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e36fb078cce9904c7989b9693e41cb9711e0600139ce3970c6ef814b6ebc2b2"}, + {file = "mypy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b0695d605ddcd3eb2f736cd8b4e388288c21e7de85001e9f85df9187f2b50f9"}, + {file = "mypy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:cd777b780312ddb135bceb9bc8722a73ec95e042f911cc279e2ec3c667076051"}, + {file = "mypy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3be66771aa5c97602f382230165b856c231d1277c511c9a8dd058be4784472e1"}, + {file = "mypy-1.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8b2cbaca148d0754a54d44121b5825ae71868c7592a53b7292eeb0f3fdae95ee"}, + {file = "mypy-1.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ec404a7cbe9fc0e92cb0e67f55ce0c025014e26d33e54d9e506a0f2d07fe5de"}, + {file = "mypy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e22e1527dc3d4aa94311d246b59e47f6455b8729f4968765ac1eacf9a4760bc7"}, + {file = "mypy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:a87dbfa85971e8d59c9cc1fcf534efe664d8949e4c0b6b44e8ca548e746a8d53"}, + {file = "mypy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a781f6ad4bab20eef8b65174a57e5203f4be627b46291f4589879bf4e257b97b"}, + {file = "mypy-1.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b808e12113505b97d9023b0b5e0c0705a90571c6feefc6f215c1df9381256e30"}, + {file = "mypy-1.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f55583b12156c399dce2df7d16f8a5095291354f1e839c252ec6c0611e86e2e"}, + {file = "mypy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4cf18f9d0efa1b16478c4c129eabec36148032575391095f73cae2e722fcf9d5"}, + {file = "mypy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:bc6ac273b23c6b82da3bb25f4136c4fd42665f17f2cd850771cb600bdd2ebeda"}, + {file = "mypy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9fd50226364cd2737351c79807775136b0abe084433b55b2e29181a4c3c878c0"}, + {file = "mypy-1.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f90cff89eea89273727d8783fef5d4a934be2fdca11b47def50cf5d311aff727"}, + {file = "mypy-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fcfc70599efde5c67862a07a1aaf50e55bce629ace26bb19dc17cece5dd31ca4"}, + {file = "mypy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:075cbf81f3e134eadaf247de187bd604748171d6b79736fa9b6c9685b4083061"}, + {file = "mypy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:3f298531bca95ff615b6e9f2fc0333aae27fa48052903a0ac90215021cdcfa4f"}, + {file = "mypy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa7ef5244615a2523b56c034becde4e9e3f9b034854c93639adb667ec9ec2976"}, + {file = "mypy-1.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3236a4c8f535a0631f85f5fcdffba71c7feeef76a6002fcba7c1a8e57c8be1ec"}, + {file = "mypy-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a2b5cdbb5dd35aa08ea9114436e0d79aceb2f38e32c21684dcf8e24e1e92821"}, + {file = "mypy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92f93b21c0fe73dc00abf91022234c79d793318b8a96faac147cd579c1671746"}, + {file = "mypy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:28d0e038361b45f099cc086d9dd99c15ff14d0188f44ac883010e172ce86c38a"}, + {file = "mypy-1.10.0-py3-none-any.whl", hash = "sha256:f8c083976eb530019175aabadb60921e73b4f45736760826aa1689dda8208aee"}, + {file = "mypy-1.10.0.tar.gz", hash = "sha256:3d087fcbec056c4ee34974da493a826ce316947485cef3901f511848e687c131"}, ] [package.dependencies] @@ -1178,17 +1332,17 @@ files = [ [[package]] name = "myst-parser" -version = "2.0.0" +version = "3.0.1" description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," optional = false python-versions = ">=3.8" files = [ - {file = "myst_parser-2.0.0-py3-none-any.whl", hash = "sha256:7c36344ae39c8e740dad7fdabf5aa6fc4897a813083c6cc9990044eb93656b14"}, - {file = "myst_parser-2.0.0.tar.gz", hash = "sha256:ea929a67a6a0b1683cdbe19b8d2e724cd7643f8aa3e7bb18dd65beac3483bead"}, + {file = "myst_parser-3.0.1-py3-none-any.whl", hash = "sha256:6457aaa33a5d474aca678b8ead9b3dc298e89c68e67012e73146ea6fd54babf1"}, + {file = "myst_parser-3.0.1.tar.gz", hash = "sha256:88f0cb406cb363b077d176b51c476f62d60604d68a8dcdf4832e080441301a87"}, ] [package.dependencies] -docutils = ">=0.16,<0.21" +docutils = ">=0.18,<0.22" jinja2 = "*" markdown-it-py = ">=3.0,<4.0" mdit-py-plugins = ">=0.4,<1.0" @@ -1198,24 +1352,21 @@ sphinx = ">=6,<8" [package.extras] code-style = ["pre-commit (>=3.0,<4.0)"] linkify = ["linkify-it-py (>=2.0,<3.0)"] -rtd = ["ipython", "pydata-sphinx-theme (==v0.13.0rc4)", "sphinx-autodoc2 (>=0.4.2,<0.5.0)", "sphinx-book-theme (==1.0.0rc2)", "sphinx-copybutton", "sphinx-design2", "sphinx-pyscript", "sphinx-tippy (>=0.3.1)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.8.2,<0.9.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] -testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=7,<8)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx-pytest"] -testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4,<0.4.0)"] +rtd = ["ipython", "sphinx (>=7)", "sphinx-autodoc2 (>=0.5.0,<0.6.0)", "sphinx-book-theme (>=1.1,<2.0)", "sphinx-copybutton", "sphinx-design", "sphinx-pyscript", "sphinx-tippy (>=0.4.3)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.9.0,<0.10.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "defusedxml", "pytest (>=8,<9)", "pytest-cov", "pytest-param-files (>=0.6.0,<0.7.0)", "pytest-regressions", "sphinx-pytest"] +testing-docutils = ["pygments", "pytest (>=8,<9)", "pytest-param-files (>=0.6.0,<0.7.0)"] [[package]] name = "nodeenv" -version = "1.8.0" +version = "1.9.0" description = "Node.js virtual environment builder" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, + {file = "nodeenv-1.9.0-py2.py3-none-any.whl", hash = "sha256:508ecec98f9f3330b636d4448c0f1a56fc68017c68f1e7857ebc52acf0eb879a"}, + {file = "nodeenv-1.9.0.tar.gz", hash = "sha256:07f144e90dae547bf0d4ee8da0ee42664a42a04e02ed68e06324348dafe4bdb1"}, ] -[package.dependencies] -setuptools = "*" - [[package]] name = "openapi-pydantic" version = "0.4.0" @@ -1232,61 +1383,57 @@ pydantic = ">=1.8" [[package]] name = "orjson" -version = "3.9.15" +version = "3.10.3" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.9.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:d61f7ce4727a9fa7680cd6f3986b0e2c732639f46a5e0156e550e35258aa313a"}, - {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4feeb41882e8aa17634b589533baafdceb387e01e117b1ec65534ec724023d04"}, - {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fbbeb3c9b2edb5fd044b2a070f127a0ac456ffd079cb82746fc84af01ef021a4"}, - {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b66bcc5670e8a6b78f0313bcb74774c8291f6f8aeef10fe70e910b8040f3ab75"}, - {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2973474811db7b35c30248d1129c64fd2bdf40d57d84beed2a9a379a6f57d0ab"}, - {file = "orjson-3.9.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fe41b6f72f52d3da4db524c8653e46243c8c92df826ab5ffaece2dba9cccd58"}, - {file = "orjson-3.9.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4228aace81781cc9d05a3ec3a6d2673a1ad0d8725b4e915f1089803e9efd2b99"}, - {file = "orjson-3.9.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6f7b65bfaf69493c73423ce9db66cfe9138b2f9ef62897486417a8fcb0a92bfe"}, - {file = "orjson-3.9.15-cp310-none-win32.whl", hash = "sha256:2d99e3c4c13a7b0fb3792cc04c2829c9db07838fb6973e578b85c1745e7d0ce7"}, - {file = "orjson-3.9.15-cp310-none-win_amd64.whl", hash = "sha256:b725da33e6e58e4a5d27958568484aa766e825e93aa20c26c91168be58e08cbb"}, - {file = "orjson-3.9.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c8e8fe01e435005d4421f183038fc70ca85d2c1e490f51fb972db92af6e047c2"}, - {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87f1097acb569dde17f246faa268759a71a2cb8c96dd392cd25c668b104cad2f"}, - {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff0f9913d82e1d1fadbd976424c316fbc4d9c525c81d047bbdd16bd27dd98cfc"}, - {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8055ec598605b0077e29652ccfe9372247474375e0e3f5775c91d9434e12d6b1"}, - {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6768a327ea1ba44c9114dba5fdda4a214bdb70129065cd0807eb5f010bfcbb5"}, - {file = "orjson-3.9.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12365576039b1a5a47df01aadb353b68223da413e2e7f98c02403061aad34bde"}, - {file = "orjson-3.9.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:71c6b009d431b3839d7c14c3af86788b3cfac41e969e3e1c22f8a6ea13139404"}, - {file = "orjson-3.9.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e18668f1bd39e69b7fed19fa7cd1cd110a121ec25439328b5c89934e6d30d357"}, - {file = "orjson-3.9.15-cp311-none-win32.whl", hash = "sha256:62482873e0289cf7313461009bf62ac8b2e54bc6f00c6fabcde785709231a5d7"}, - {file = "orjson-3.9.15-cp311-none-win_amd64.whl", hash = "sha256:b3d336ed75d17c7b1af233a6561cf421dee41d9204aa3cfcc6c9c65cd5bb69a8"}, - {file = "orjson-3.9.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:82425dd5c7bd3adfe4e94c78e27e2fa02971750c2b7ffba648b0f5d5cc016a73"}, - {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c51378d4a8255b2e7c1e5cc430644f0939539deddfa77f6fac7b56a9784160a"}, - {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6ae4e06be04dc00618247c4ae3f7c3e561d5bc19ab6941427f6d3722a0875ef7"}, - {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcef128f970bb63ecf9a65f7beafd9b55e3aaf0efc271a4154050fc15cdb386e"}, - {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b72758f3ffc36ca566ba98a8e7f4f373b6c17c646ff8ad9b21ad10c29186f00d"}, - {file = "orjson-3.9.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c57bc7b946cf2efa67ac55766e41764b66d40cbd9489041e637c1304400494"}, - {file = "orjson-3.9.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:946c3a1ef25338e78107fba746f299f926db408d34553b4754e90a7de1d44068"}, - {file = "orjson-3.9.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2f256d03957075fcb5923410058982aea85455d035607486ccb847f095442bda"}, - {file = "orjson-3.9.15-cp312-none-win_amd64.whl", hash = "sha256:5bb399e1b49db120653a31463b4a7b27cf2fbfe60469546baf681d1b39f4edf2"}, - {file = "orjson-3.9.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b17f0f14a9c0ba55ff6279a922d1932e24b13fc218a3e968ecdbf791b3682b25"}, - {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f6cbd8e6e446fb7e4ed5bac4661a29e43f38aeecbf60c4b900b825a353276a1"}, - {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76bc6356d07c1d9f4b782813094d0caf1703b729d876ab6a676f3aaa9a47e37c"}, - {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fdfa97090e2d6f73dced247a2f2d8004ac6449df6568f30e7fa1a045767c69a6"}, - {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7413070a3e927e4207d00bd65f42d1b780fb0d32d7b1d951f6dc6ade318e1b5a"}, - {file = "orjson-3.9.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cf1596680ac1f01839dba32d496136bdd5d8ffb858c280fa82bbfeb173bdd40"}, - {file = "orjson-3.9.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:809d653c155e2cc4fd39ad69c08fdff7f4016c355ae4b88905219d3579e31eb7"}, - {file = "orjson-3.9.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:920fa5a0c5175ab14b9c78f6f820b75804fb4984423ee4c4f1e6d748f8b22bc1"}, - {file = "orjson-3.9.15-cp38-none-win32.whl", hash = "sha256:2b5c0f532905e60cf22a511120e3719b85d9c25d0e1c2a8abb20c4dede3b05a5"}, - {file = "orjson-3.9.15-cp38-none-win_amd64.whl", hash = "sha256:67384f588f7f8daf040114337d34a5188346e3fae6c38b6a19a2fe8c663a2f9b"}, - {file = "orjson-3.9.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6fc2fe4647927070df3d93f561d7e588a38865ea0040027662e3e541d592811e"}, - {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34cbcd216e7af5270f2ffa63a963346845eb71e174ea530867b7443892d77180"}, - {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f541587f5c558abd93cb0de491ce99a9ef8d1ae29dd6ab4dbb5a13281ae04cbd"}, - {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92255879280ef9c3c0bcb327c5a1b8ed694c290d61a6a532458264f887f052cb"}, - {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:05a1f57fb601c426635fcae9ddbe90dfc1ed42245eb4c75e4960440cac667262"}, - {file = "orjson-3.9.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ede0bde16cc6e9b96633df1631fbcd66491d1063667f260a4f2386a098393790"}, - {file = "orjson-3.9.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e88b97ef13910e5f87bcbc4dd7979a7de9ba8702b54d3204ac587e83639c0c2b"}, - {file = "orjson-3.9.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57d5d8cf9c27f7ef6bc56a5925c7fbc76b61288ab674eb352c26ac780caa5b10"}, - {file = "orjson-3.9.15-cp39-none-win32.whl", hash = "sha256:001f4eb0ecd8e9ebd295722d0cbedf0748680fb9998d3993abaed2f40587257a"}, - {file = "orjson-3.9.15-cp39-none-win_amd64.whl", hash = "sha256:ea0b183a5fe6b2b45f3b854b0d19c4e932d6f5934ae1f723b07cf9560edd4ec7"}, - {file = "orjson-3.9.15.tar.gz", hash = "sha256:95cae920959d772f30ab36d3b25f83bb0f3be671e986c72ce22f8fa700dae061"}, + {file = "orjson-3.10.3-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9fb6c3f9f5490a3eb4ddd46fc1b6eadb0d6fc16fb3f07320149c3286a1409dd8"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:252124b198662eee80428f1af8c63f7ff077c88723fe206a25df8dc57a57b1fa"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9f3e87733823089a338ef9bbf363ef4de45e5c599a9bf50a7a9b82e86d0228da"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8334c0d87103bb9fbbe59b78129f1f40d1d1e8355bbed2ca71853af15fa4ed3"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1952c03439e4dce23482ac846e7961f9d4ec62086eb98ae76d97bd41d72644d7"}, + {file = "orjson-3.10.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c0403ed9c706dcd2809f1600ed18f4aae50be263bd7112e54b50e2c2bc3ebd6d"}, + {file = "orjson-3.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:382e52aa4270a037d41f325e7d1dfa395b7de0c367800b6f337d8157367bf3a7"}, + {file = "orjson-3.10.3-cp310-none-win32.whl", hash = "sha256:be2aab54313752c04f2cbaab4515291ef5af8c2256ce22abc007f89f42f49109"}, + {file = "orjson-3.10.3-cp310-none-win_amd64.whl", hash = "sha256:416b195f78ae461601893f482287cee1e3059ec49b4f99479aedf22a20b1098b"}, + {file = "orjson-3.10.3-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:73100d9abbbe730331f2242c1fc0bcb46a3ea3b4ae3348847e5a141265479700"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:544a12eee96e3ab828dbfcb4d5a0023aa971b27143a1d35dc214c176fdfb29b3"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:520de5e2ef0b4ae546bea25129d6c7c74edb43fc6cf5213f511a927f2b28148b"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccaa0a401fc02e8828a5bedfd80f8cd389d24f65e5ca3954d72c6582495b4bcf"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7bc9e8bc11bac40f905640acd41cbeaa87209e7e1f57ade386da658092dc16"}, + {file = "orjson-3.10.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3582b34b70543a1ed6944aca75e219e1192661a63da4d039d088a09c67543b08"}, + {file = "orjson-3.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c23dfa91481de880890d17aa7b91d586a4746a4c2aa9a145bebdbaf233768d5"}, + {file = "orjson-3.10.3-cp311-none-win32.whl", hash = "sha256:1770e2a0eae728b050705206d84eda8b074b65ee835e7f85c919f5705b006c9b"}, + {file = "orjson-3.10.3-cp311-none-win_amd64.whl", hash = "sha256:93433b3c1f852660eb5abdc1f4dd0ced2be031ba30900433223b28ee0140cde5"}, + {file = "orjson-3.10.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a39aa73e53bec8d410875683bfa3a8edf61e5a1c7bb4014f65f81d36467ea098"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0943a96b3fa09bee1afdfccc2cb236c9c64715afa375b2af296c73d91c23eab2"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e852baafceff8da3c9defae29414cc8513a1586ad93e45f27b89a639c68e8176"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18566beb5acd76f3769c1d1a7ec06cdb81edc4d55d2765fb677e3eaa10fa99e0"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bd2218d5a3aa43060efe649ec564ebedec8ce6ae0a43654b81376216d5ebd42"}, + {file = "orjson-3.10.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cf20465e74c6e17a104ecf01bf8cd3b7b252565b4ccee4548f18b012ff2f8069"}, + {file = "orjson-3.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ba7f67aa7f983c4345eeda16054a4677289011a478ca947cd69c0a86ea45e534"}, + {file = "orjson-3.10.3-cp312-none-win32.whl", hash = "sha256:17e0713fc159abc261eea0f4feda611d32eabc35708b74bef6ad44f6c78d5ea0"}, + {file = "orjson-3.10.3-cp312-none-win_amd64.whl", hash = "sha256:4c895383b1ec42b017dd2c75ae8a5b862fc489006afde06f14afbdd0309b2af0"}, + {file = "orjson-3.10.3-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:be2719e5041e9fb76c8c2c06b9600fe8e8584e6980061ff88dcbc2691a16d20d"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0175a5798bdc878956099f5c54b9837cb62cfbf5d0b86ba6d77e43861bcec2"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:978be58a68ade24f1af7758626806e13cff7748a677faf95fbb298359aa1e20d"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16bda83b5c61586f6f788333d3cf3ed19015e3b9019188c56983b5a299210eb5"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ad1f26bea425041e0a1adad34630c4825a9e3adec49079b1fb6ac8d36f8b754"}, + {file = "orjson-3.10.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9e253498bee561fe85d6325ba55ff2ff08fb5e7184cd6a4d7754133bd19c9195"}, + {file = "orjson-3.10.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0a62f9968bab8a676a164263e485f30a0b748255ee2f4ae49a0224be95f4532b"}, + {file = "orjson-3.10.3-cp38-none-win32.whl", hash = "sha256:8d0b84403d287d4bfa9bf7d1dc298d5c1c5d9f444f3737929a66f2fe4fb8f134"}, + {file = "orjson-3.10.3-cp38-none-win_amd64.whl", hash = "sha256:8bc7a4df90da5d535e18157220d7915780d07198b54f4de0110eca6b6c11e290"}, + {file = "orjson-3.10.3-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9059d15c30e675a58fdcd6f95465c1522b8426e092de9fff20edebfdc15e1cb0"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d40c7f7938c9c2b934b297412c067936d0b54e4b8ab916fd1a9eb8f54c02294"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4a654ec1de8fdaae1d80d55cee65893cb06494e124681ab335218be6a0691e7"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:831c6ef73f9aa53c5f40ae8f949ff7681b38eaddb6904aab89dca4d85099cb78"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99b880d7e34542db89f48d14ddecbd26f06838b12427d5a25d71baceb5ba119d"}, + {file = "orjson-3.10.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e5e176c994ce4bd434d7aafb9ecc893c15f347d3d2bbd8e7ce0b63071c52e25"}, + {file = "orjson-3.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b69a58a37dab856491bf2d3bbf259775fdce262b727f96aafbda359cb1d114d8"}, + {file = "orjson-3.10.3-cp39-none-win32.whl", hash = "sha256:b8d4d1a6868cde356f1402c8faeb50d62cee765a1f7ffcfd6de732ab0581e063"}, + {file = "orjson-3.10.3-cp39-none-win_amd64.whl", hash = "sha256:5102f50c5fc46d94f2033fe00d392588564378260d64377aec702f21a7a22912"}, + {file = "orjson-3.10.3.tar.gz", hash = "sha256:2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818"}, ] [[package]] @@ -1324,13 +1471,13 @@ files = [ [[package]] name = "pep8-naming" -version = "0.13.3" +version = "0.14.1" description = "Check PEP-8 naming conventions, plugin for flake8" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pep8-naming-0.13.3.tar.gz", hash = "sha256:1705f046dfcd851378aac3be1cd1551c7c1e5ff363bacad707d43007877fa971"}, - {file = "pep8_naming-0.13.3-py3-none-any.whl", hash = "sha256:1a86b8c71a03337c97181917e2b472f0f5e4ccb06844a0d6f0a33522549e7a80"}, + {file = "pep8-naming-0.14.1.tar.gz", hash = "sha256:1ef228ae80875557eb6c1549deafed4dabbf3261cfcafa12f773fe0db9be8a36"}, + {file = "pep8_naming-0.14.1-py3-none-any.whl", hash = "sha256:63f514fc777d715f935faf185dedd679ab99526a7f2f503abb61587877f7b1c5"}, ] [package.dependencies] @@ -1338,28 +1485,29 @@ flake8 = ">=5.0.0" [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] [package.extras] docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" -version = "1.4.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1368,13 +1516,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.6.2" +version = "3.7.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.9" files = [ - {file = "pre_commit-3.6.2-py2.py3-none-any.whl", hash = "sha256:ba637c2d7a670c10daedc059f5c49b5bd0aadbccfcd7ec15592cf9665117532c"}, - {file = "pre_commit-3.6.2.tar.gz", hash = "sha256:c3ef34f463045c88658c5b99f38c1e297abdcc0ff13f98d3370055fbbfabc67e"}, + {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"}, + {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"}, ] [package.dependencies] @@ -1386,13 +1534,13 @@ virtualenv = ">=20.10.0" [[package]] name = "pre-commit-hooks" -version = "4.5.0" +version = "4.6.0" description = "Some out-of-the-box hooks for pre-commit." optional = false python-versions = ">=3.8" files = [ - {file = "pre_commit_hooks-4.5.0-py2.py3-none-any.whl", hash = "sha256:b779d5c44ede9b1fda48e2d96b08e9aa5b1d2fdb8903ca09f0dbaca22d529edb"}, - {file = "pre_commit_hooks-4.5.0.tar.gz", hash = "sha256:ffbe2af1c85ac9a7695866955680b4dee98822638b748a6f3debefad79748c8a"}, + {file = "pre_commit_hooks-4.6.0-py2.py3-none-any.whl", hash = "sha256:a69199e6a2d45ec59c1020a81ca1549abddc2afb798276d9a0d951752d6abbfe"}, + {file = "pre_commit_hooks-4.6.0.tar.gz", hash = "sha256:eb1f43ee67869cd41b4c59017fad4a0f9d4d61201d163f2135535aaf65035a2b"}, ] [package.dependencies] @@ -1409,20 +1557,31 @@ files = [ {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, ] +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + [[package]] name = "pydantic" -version = "2.6.4" +version = "2.7.2" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"}, - {file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"}, + {file = "pydantic-2.7.2-py3-none-any.whl", hash = "sha256:834ab954175f94e6e68258537dc49402c4a5e9d0409b9f1b86b7e934a8372de7"}, + {file = "pydantic-2.7.2.tar.gz", hash = "sha256:71b2945998f9c9b7919a45bde9a50397b289937d215ae141c1d0903ba7149fd7"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.16.3" +pydantic-core = "2.18.3" typing-extensions = ">=4.6.1" [package.extras] @@ -1430,90 +1589,90 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.16.3" -description = "" +version = "2.18.3" +description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"}, - {file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:162e498303d2b1c036b957a1278fa0899d02b2842f1ff901b6395104c5554a45"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f583bd01bbfbff4eaee0868e6fc607efdfcc2b03c1c766b06a707abbc856187"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b926dd38db1519ed3043a4de50214e0d600d404099c3392f098a7f9d75029ff8"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:716b542728d4c742353448765aa7cdaa519a7b82f9564130e2b3f6766018c9ec"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4ad7f7ee1a13d9cb49d8198cd7d7e3aa93e425f371a68235f784e99741561f"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd87f48924f360e5d1c5f770d6155ce0e7d83f7b4e10c2f9ec001c73cf475c99"}, - {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0df446663464884297c793874573549229f9eca73b59360878f382a0fc085979"}, - {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4df8a199d9f6afc5ae9a65f8f95ee52cae389a8c6b20163762bde0426275b7db"}, - {file = "pydantic_core-2.16.3-cp310-none-win32.whl", hash = "sha256:456855f57b413f077dff513a5a28ed838dbbb15082ba00f80750377eed23d132"}, - {file = "pydantic_core-2.16.3-cp310-none-win_amd64.whl", hash = "sha256:732da3243e1b8d3eab8c6ae23ae6a58548849d2e4a4e03a1924c8ddf71a387cb"}, - {file = "pydantic_core-2.16.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:519ae0312616026bf4cedc0fe459e982734f3ca82ee8c7246c19b650b60a5ee4"}, - {file = "pydantic_core-2.16.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b3992a322a5617ded0a9f23fd06dbc1e4bd7cf39bc4ccf344b10f80af58beacd"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d62da299c6ecb04df729e4b5c52dc0d53f4f8430b4492b93aa8de1f541c4aac"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2acca2be4bb2f2147ada8cac612f8a98fc09f41c89f87add7256ad27332c2fda"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b662180108c55dfbf1280d865b2d116633d436cfc0bba82323554873967b340"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7c6ed0dc9d8e65f24f5824291550139fe6f37fac03788d4580da0d33bc00c97"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1bb0827f56654b4437955555dc3aeeebeddc47c2d7ed575477f082622c49e"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e56f8186d6210ac7ece503193ec84104da7ceb98f68ce18c07282fcc2452e76f"}, - {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:936e5db01dd49476fa8f4383c259b8b1303d5dd5fb34c97de194560698cc2c5e"}, - {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33809aebac276089b78db106ee692bdc9044710e26f24a9a2eaa35a0f9fa70ba"}, - {file = "pydantic_core-2.16.3-cp311-none-win32.whl", hash = "sha256:ded1c35f15c9dea16ead9bffcde9bb5c7c031bff076355dc58dcb1cb436c4721"}, - {file = "pydantic_core-2.16.3-cp311-none-win_amd64.whl", hash = "sha256:d89ca19cdd0dd5f31606a9329e309d4fcbb3df860960acec32630297d61820df"}, - {file = "pydantic_core-2.16.3-cp311-none-win_arm64.whl", hash = "sha256:6162f8d2dc27ba21027f261e4fa26f8bcb3cf9784b7f9499466a311ac284b5b9"}, - {file = "pydantic_core-2.16.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0f56ae86b60ea987ae8bcd6654a887238fd53d1384f9b222ac457070b7ac4cff"}, - {file = "pydantic_core-2.16.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9bd22a2a639e26171068f8ebb5400ce2c1bc7d17959f60a3b753ae13c632975"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4204e773b4b408062960e65468d5346bdfe139247ee5f1ca2a378983e11388a2"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f651dd19363c632f4abe3480a7c87a9773be27cfe1341aef06e8759599454120"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aaf09e615a0bf98d406657e0008e4a8701b11481840be7d31755dc9f97c44053"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8e47755d8152c1ab5b55928ab422a76e2e7b22b5ed8e90a7d584268dd49e9c6b"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:500960cb3a0543a724a81ba859da816e8cf01b0e6aaeedf2c3775d12ee49cade"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf6204fe865da605285c34cf1172879d0314ff267b1c35ff59de7154f35fdc2e"}, - {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d33dd21f572545649f90c38c227cc8631268ba25c460b5569abebdd0ec5974ca"}, - {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:49d5d58abd4b83fb8ce763be7794d09b2f50f10aa65c0f0c1696c677edeb7cbf"}, - {file = "pydantic_core-2.16.3-cp312-none-win32.whl", hash = "sha256:f53aace168a2a10582e570b7736cc5bef12cae9cf21775e3eafac597e8551fbe"}, - {file = "pydantic_core-2.16.3-cp312-none-win_amd64.whl", hash = "sha256:0d32576b1de5a30d9a97f300cc6a3f4694c428d956adbc7e6e2f9cad279e45ed"}, - {file = "pydantic_core-2.16.3-cp312-none-win_arm64.whl", hash = "sha256:ec08be75bb268473677edb83ba71e7e74b43c008e4a7b1907c6d57e940bf34b6"}, - {file = "pydantic_core-2.16.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:b1f6f5938d63c6139860f044e2538baeee6f0b251a1816e7adb6cbce106a1f01"}, - {file = "pydantic_core-2.16.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a1ef6a36fdbf71538142ed604ad19b82f67b05749512e47f247a6ddd06afdc7"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704d35ecc7e9c31d48926150afada60401c55efa3b46cd1ded5a01bdffaf1d48"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d937653a696465677ed583124b94a4b2d79f5e30b2c46115a68e482c6a591c8a"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9803edf8e29bd825f43481f19c37f50d2b01899448273b3a7758441b512acf8"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72282ad4892a9fb2da25defeac8c2e84352c108705c972db82ab121d15f14e6d"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f752826b5b8361193df55afcdf8ca6a57d0232653494ba473630a83ba50d8c9"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4384a8f68ddb31a0b0c3deae88765f5868a1b9148939c3f4121233314ad5532c"}, - {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4b2bf78342c40b3dc830880106f54328928ff03e357935ad26c7128bbd66ce8"}, - {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:13dcc4802961b5f843a9385fc821a0b0135e8c07fc3d9949fd49627c1a5e6ae5"}, - {file = "pydantic_core-2.16.3-cp38-none-win32.whl", hash = "sha256:e3e70c94a0c3841e6aa831edab1619ad5c511199be94d0c11ba75fe06efe107a"}, - {file = "pydantic_core-2.16.3-cp38-none-win_amd64.whl", hash = "sha256:ecdf6bf5f578615f2e985a5e1f6572e23aa632c4bd1dc67f8f406d445ac115ed"}, - {file = "pydantic_core-2.16.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bda1ee3e08252b8d41fa5537413ffdddd58fa73107171a126d3b9ff001b9b820"}, - {file = "pydantic_core-2.16.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:21b888c973e4f26b7a96491c0965a8a312e13be108022ee510248fe379a5fa23"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be0ec334369316fa73448cc8c982c01e5d2a81c95969d58b8f6e272884df0074"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5b6079cc452a7c53dd378c6f881ac528246b3ac9aae0f8eef98498a75657805"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee8d5f878dccb6d499ba4d30d757111847b6849ae07acdd1205fffa1fc1253c"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7233d65d9d651242a68801159763d09e9ec96e8a158dbf118dc090cd77a104c9"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6119dc90483a5cb50a1306adb8d52c66e447da88ea44f323e0ae1a5fcb14256"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:578114bc803a4c1ff9946d977c221e4376620a46cf78da267d946397dc9514a8"}, - {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d8f99b147ff3fcf6b3cc60cb0c39ea443884d5559a30b1481e92495f2310ff2b"}, - {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4ac6b4ce1e7283d715c4b729d8f9dab9627586dafce81d9eaa009dd7f25dd972"}, - {file = "pydantic_core-2.16.3-cp39-none-win32.whl", hash = "sha256:e7774b570e61cb998490c5235740d475413a1f6de823169b4cf94e2fe9e9f6b2"}, - {file = "pydantic_core-2.16.3-cp39-none-win_amd64.whl", hash = "sha256:9091632a25b8b87b9a605ec0e61f241c456e9248bfdcf7abdf344fdb169c81cf"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:36fa178aacbc277bc6b62a2c3da95226520da4f4e9e206fdf076484363895d2c"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:dcca5d2bf65c6fb591fff92da03f94cd4f315972f97c21975398bd4bd046854a"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a72fb9963cba4cd5793854fd12f4cfee731e86df140f59ff52a49b3552db241"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b60cc1a081f80a2105a59385b92d82278b15d80ebb3adb200542ae165cd7d183"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cbcc558401de90a746d02ef330c528f2e668c83350f045833543cd57ecead1ad"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fee427241c2d9fb7192b658190f9f5fd6dfe41e02f3c1489d2ec1e6a5ab1e04a"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f4cb85f693044e0f71f394ff76c98ddc1bc0953e48c061725e540396d5c8a2e1"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b29eeb887aa931c2fcef5aa515d9d176d25006794610c264ddc114c053bf96fe"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a425479ee40ff021f8216c9d07a6a3b54b31c8267c6e17aa88b70d7ebd0e5e5b"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5c5cbc703168d1b7a838668998308018a2718c2130595e8e190220238addc96f"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b6add4c0b39a513d323d3b93bc173dac663c27b99860dd5bf491b240d26137"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f76ee558751746d6a38f89d60b6228fa174e5172d143886af0f85aa306fd89"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:287073c66748f624be4cef893ef9174e3eb88fe0b8a78dc22e88eca4bc357ca6"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ed25e1835c00a332cb10c683cd39da96a719ab1dfc08427d476bce41b92531fc"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:86b3d0033580bd6bbe07590152007275bd7af95f98eaa5bd36f3da219dcd93da"}, - {file = "pydantic_core-2.16.3.tar.gz", hash = "sha256:1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"}, + {file = "pydantic_core-2.18.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:744697428fcdec6be5670460b578161d1ffe34743a5c15656be7ea82b008197c"}, + {file = "pydantic_core-2.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37b40c05ced1ba4218b14986fe6f283d22e1ae2ff4c8e28881a70fb81fbfcda7"}, + {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:544a9a75622357076efb6b311983ff190fbfb3c12fc3a853122b34d3d358126c"}, + {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e2e253af04ceaebde8eb201eb3f3e3e7e390f2d275a88300d6a1959d710539e2"}, + {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:855ec66589c68aa367d989da5c4755bb74ee92ccad4fdb6af942c3612c067e34"}, + {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d3e42bb54e7e9d72c13ce112e02eb1b3b55681ee948d748842171201a03a98a"}, + {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6ac9ffccc9d2e69d9fba841441d4259cb668ac180e51b30d3632cd7abca2b9b"}, + {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c56eca1686539fa0c9bda992e7bd6a37583f20083c37590413381acfc5f192d6"}, + {file = "pydantic_core-2.18.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:17954d784bf8abfc0ec2a633108207ebc4fa2df1a0e4c0c3ccbaa9bb01d2c426"}, + {file = "pydantic_core-2.18.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:98ed737567d8f2ecd54f7c8d4f8572ca7c7921ede93a2e52939416170d357812"}, + {file = "pydantic_core-2.18.3-cp310-none-win32.whl", hash = "sha256:9f9e04afebd3ed8c15d67a564ed0a34b54e52136c6d40d14c5547b238390e779"}, + {file = "pydantic_core-2.18.3-cp310-none-win_amd64.whl", hash = "sha256:45e4ffbae34f7ae30d0047697e724e534a7ec0a82ef9994b7913a412c21462a0"}, + {file = "pydantic_core-2.18.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b9ebe8231726c49518b16b237b9fe0d7d361dd221302af511a83d4ada01183ab"}, + {file = "pydantic_core-2.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b8e20e15d18bf7dbb453be78a2d858f946f5cdf06c5072453dace00ab652e2b2"}, + {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0d9ff283cd3459fa0bf9b0256a2b6f01ac1ff9ffb034e24457b9035f75587cb"}, + {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f7ef5f0ebb77ba24c9970da18b771711edc5feaf00c10b18461e0f5f5949231"}, + {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73038d66614d2e5cde30435b5afdced2b473b4c77d4ca3a8624dd3e41a9c19be"}, + {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6afd5c867a74c4d314c557b5ea9520183fadfbd1df4c2d6e09fd0d990ce412cd"}, + {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd7df92f28d351bb9f12470f4c533cf03d1b52ec5a6e5c58c65b183055a60106"}, + {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80aea0ffeb1049336043d07799eace1c9602519fb3192916ff525b0287b2b1e4"}, + {file = "pydantic_core-2.18.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaee40f25bba38132e655ffa3d1998a6d576ba7cf81deff8bfa189fb43fd2bbe"}, + {file = "pydantic_core-2.18.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9128089da8f4fe73f7a91973895ebf2502539d627891a14034e45fb9e707e26d"}, + {file = "pydantic_core-2.18.3-cp311-none-win32.whl", hash = "sha256:fec02527e1e03257aa25b1a4dcbe697b40a22f1229f5d026503e8b7ff6d2eda7"}, + {file = "pydantic_core-2.18.3-cp311-none-win_amd64.whl", hash = "sha256:58ff8631dbab6c7c982e6425da8347108449321f61fe427c52ddfadd66642af7"}, + {file = "pydantic_core-2.18.3-cp311-none-win_arm64.whl", hash = "sha256:3fc1c7f67f34c6c2ef9c213e0f2a351797cda98249d9ca56a70ce4ebcaba45f4"}, + {file = "pydantic_core-2.18.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f0928cde2ae416a2d1ebe6dee324709c6f73e93494d8c7aea92df99aab1fc40f"}, + {file = "pydantic_core-2.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bee9bb305a562f8b9271855afb6ce00223f545de3d68560b3c1649c7c5295e9"}, + {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e862823be114387257dacbfa7d78547165a85d7add33b446ca4f4fae92c7ff5c"}, + {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a36f78674cbddc165abab0df961b5f96b14461d05feec5e1f78da58808b97e7"}, + {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba905d184f62e7ddbb7a5a751d8a5c805463511c7b08d1aca4a3e8c11f2e5048"}, + {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fdd362f6a586e681ff86550b2379e532fee63c52def1c666887956748eaa326"}, + {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24b214b7ee3bd3b865e963dbed0f8bc5375f49449d70e8d407b567af3222aae4"}, + {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:691018785779766127f531674fa82bb368df5b36b461622b12e176c18e119022"}, + {file = "pydantic_core-2.18.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:60e4c625e6f7155d7d0dcac151edf5858102bc61bf959d04469ca6ee4e8381bd"}, + {file = "pydantic_core-2.18.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4e651e47d981c1b701dcc74ab8fec5a60a5b004650416b4abbef13db23bc7be"}, + {file = "pydantic_core-2.18.3-cp312-none-win32.whl", hash = "sha256:ffecbb5edb7f5ffae13599aec33b735e9e4c7676ca1633c60f2c606beb17efc5"}, + {file = "pydantic_core-2.18.3-cp312-none-win_amd64.whl", hash = "sha256:2c8333f6e934733483c7eddffdb094c143b9463d2af7e6bd85ebcb2d4a1b82c6"}, + {file = "pydantic_core-2.18.3-cp312-none-win_arm64.whl", hash = "sha256:7a20dded653e516a4655f4c98e97ccafb13753987434fe7cf044aa25f5b7d417"}, + {file = "pydantic_core-2.18.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:eecf63195be644b0396f972c82598cd15693550f0ff236dcf7ab92e2eb6d3522"}, + {file = "pydantic_core-2.18.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c44efdd3b6125419c28821590d7ec891c9cb0dff33a7a78d9d5c8b6f66b9702"}, + {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e59fca51ffbdd1638b3856779342ed69bcecb8484c1d4b8bdb237d0eb5a45e2"}, + {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70cf099197d6b98953468461d753563b28e73cf1eade2ffe069675d2657ed1d5"}, + {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63081a49dddc6124754b32a3774331467bfc3d2bd5ff8f10df36a95602560361"}, + {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:370059b7883485c9edb9655355ff46d912f4b03b009d929220d9294c7fd9fd60"}, + {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a64faeedfd8254f05f5cf6fc755023a7e1606af3959cfc1a9285744cc711044"}, + {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19d2e725de0f90d8671f89e420d36c3dd97639b98145e42fcc0e1f6d492a46dc"}, + {file = "pydantic_core-2.18.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:67bc078025d70ec5aefe6200ef094576c9d86bd36982df1301c758a9fff7d7f4"}, + {file = "pydantic_core-2.18.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:adf952c3f4100e203cbaf8e0c907c835d3e28f9041474e52b651761dc248a3c0"}, + {file = "pydantic_core-2.18.3-cp38-none-win32.whl", hash = "sha256:9a46795b1f3beb167eaee91736d5d17ac3a994bf2215a996aed825a45f897558"}, + {file = "pydantic_core-2.18.3-cp38-none-win_amd64.whl", hash = "sha256:200ad4e3133cb99ed82342a101a5abf3d924722e71cd581cc113fe828f727fbc"}, + {file = "pydantic_core-2.18.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:304378b7bf92206036c8ddd83a2ba7b7d1a5b425acafff637172a3aa72ad7083"}, + {file = "pydantic_core-2.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c826870b277143e701c9ccf34ebc33ddb4d072612683a044e7cce2d52f6c3fef"}, + {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e201935d282707394f3668380e41ccf25b5794d1b131cdd96b07f615a33ca4b1"}, + {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5560dda746c44b48bf82b3d191d74fe8efc5686a9ef18e69bdabccbbb9ad9442"}, + {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b32c2a1f8032570842257e4c19288eba9a2bba4712af542327de9a1204faff8"}, + {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:929c24e9dea3990bc8bcd27c5f2d3916c0c86f5511d2caa69e0d5290115344a9"}, + {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a8376fef60790152564b0eab376b3e23dd6e54f29d84aad46f7b264ecca943"}, + {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dccf3ef1400390ddd1fb55bf0632209d39140552d068ee5ac45553b556780e06"}, + {file = "pydantic_core-2.18.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:41dbdcb0c7252b58fa931fec47937edb422c9cb22528f41cb8963665c372caf6"}, + {file = "pydantic_core-2.18.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:666e45cf071669fde468886654742fa10b0e74cd0fa0430a46ba6056b24fb0af"}, + {file = "pydantic_core-2.18.3-cp39-none-win32.whl", hash = "sha256:f9c08cabff68704a1b4667d33f534d544b8a07b8e5d039c37067fceb18789e78"}, + {file = "pydantic_core-2.18.3-cp39-none-win_amd64.whl", hash = "sha256:4afa5f5973e8572b5c0dcb4e2d4fda7890e7cd63329bd5cc3263a25c92ef0026"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:77319771a026f7c7d29c6ebc623de889e9563b7087911b46fd06c044a12aa5e9"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:df11fa992e9f576473038510d66dd305bcd51d7dd508c163a8c8fe148454e059"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d531076bdfb65af593326ffd567e6ab3da145020dafb9187a1d131064a55f97c"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d33ce258e4e6e6038f2b9e8b8a631d17d017567db43483314993b3ca345dcbbb"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1f9cd7f5635b719939019be9bda47ecb56e165e51dd26c9a217a433e3d0d59a9"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cd4a032bb65cc132cae1fe3e52877daecc2097965cd3914e44fbd12b00dae7c5"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f2718430098bcdf60402136c845e4126a189959d103900ebabb6774a5d9fdb"}, + {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c0037a92cf0c580ed14e10953cdd26528e8796307bb8bb312dc65f71547df04d"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b95a0972fac2b1ff3c94629fc9081b16371dad870959f1408cc33b2f78ad347a"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a62e437d687cc148381bdd5f51e3e81f5b20a735c55f690c5be94e05da2b0d5c"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b367a73a414bbb08507da102dc2cde0fa7afe57d09b3240ce82a16d608a7679c"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ecce4b2360aa3f008da3327d652e74a0e743908eac306198b47e1c58b03dd2b"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd4435b8d83f0c9561a2a9585b1de78f1abb17cb0cef5f39bf6a4b47d19bafe3"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:616221a6d473c5b9aa83fa8982745441f6a4a62a66436be9445c65f241b86c94"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7e6382ce89a92bc1d0c0c5edd51e931432202b9080dc921d8d003e616402efd1"}, + {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff58f379345603d940e461eae474b6bbb6dab66ed9a851ecd3cb3709bf4dcf6a"}, + {file = "pydantic_core-2.18.3.tar.gz", hash = "sha256:432e999088d85c8f36b9a3f769a8e2b57aabd817bbb729a90d1fe7f18f6f1f39"}, ] [package.dependencies] @@ -1549,38 +1708,37 @@ files = [ [[package]] name = "pygments" -version = "2.17.2" +version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] [package.extras] -plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pytest" -version = "8.1.1" +version = "8.2.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, - {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, + {file = "pytest-8.2.1-py3-none-any.whl", hash = "sha256:faccc5d332b8c3719f40283d0d44aa5cf101cec36f88cde9ed8f2bc0538612b1"}, + {file = "pytest-8.2.1.tar.gz", hash = "sha256:5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd"}, ] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.4,<2.0" +pluggy = ">=1.5,<2.0" [package.extras] -testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -1602,13 +1760,13 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale [[package]] name = "pyupgrade" -version = "3.15.1" +version = "3.15.2" description = "A tool to automatically upgrade syntax for newer versions." optional = false python-versions = ">=3.8.1" files = [ - {file = "pyupgrade-3.15.1-py2.py3-none-any.whl", hash = "sha256:c5e005de2805edcd333d1deb04553200ec69da85e4bc9db37b16345ed9e27ed9"}, - {file = "pyupgrade-3.15.1.tar.gz", hash = "sha256:7690857cae0f6253f39241dcd2e57118c333c438b78609fc3c17a5aa61227b7d"}, + {file = "pyupgrade-3.15.2-py2.py3-none-any.whl", hash = "sha256:ce309e0ff8ecb73f56a45f12570be84bbbde9540d13697cacb261a7f595fb1f5"}, + {file = "pyupgrade-3.15.2.tar.gz", hash = "sha256:c488d6896c546d25845712ef6402657123008d56c1063174e27aabe15bd6b4e5"}, ] [package.dependencies] @@ -1665,13 +1823,13 @@ files = [ [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -1711,23 +1869,6 @@ files = [ [package.dependencies] docutils = ">=0.11,<1.0" -[[package]] -name = "rfc3986" -version = "1.5.0" -description = "Validating URI References per RFC 3986" -optional = false -python-versions = "*" -files = [ - {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, - {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, -] - -[package.dependencies] -idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} - -[package.extras] -idna2008 = ["idna"] - [[package]] name = "rich" version = "13.7.1" @@ -1825,42 +1966,80 @@ files = [ [[package]] name = "safety" -version = "2.3.4" +version = "3.2.0" description = "Checks installed dependencies for known vulnerabilities and licenses." optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "safety-2.3.4-py3-none-any.whl", hash = "sha256:6224dcd9b20986a2b2c5e7acfdfba6bca42bb11b2783b24ed04f32317e5167ea"}, - {file = "safety-2.3.4.tar.gz", hash = "sha256:b9e74e794e82f54d11f4091c5d820c4d2d81de9f953bf0b4f33ac8bc402ae72c"}, + {file = "safety-3.2.0-py3-none-any.whl", hash = "sha256:a432fc9d17e79a4386c4f093656b617c56f839cde022649cfa796d72c7a544de"}, + {file = "safety-3.2.0.tar.gz", hash = "sha256:8bd5cab5f3d8a61ce0ea6e98f267c1006d056097c45c644fee7afeff7d5949c1"}, ] [package.dependencies] +Authlib = ">=1.2.0" Click = ">=8.0.2" -dparse = ">=0.6.2" +dparse = ">=0.6.4b0" +jinja2 = ">=3.1.0" +marshmallow = ">=3.15.0" packaging = ">=21.0" +pydantic = ">=1.10.12" requests = "*" +rich = "*" "ruamel.yaml" = ">=0.17.21" -setuptools = ">=19.3" +safety-schemas = ">=0.0.2" +setuptools = ">=65.5.1" +typer = "*" +typing-extensions = ">=4.7.1" +urllib3 = ">=1.26.5" [package.extras] -github = ["jinja2 (>=3.1.0)", "pygithub (>=1.43.3)"] +github = ["pygithub (>=1.43.3)"] gitlab = ["python-gitlab (>=1.3.0)"] +spdx = ["spdx-tools (>=0.8.2)"] + +[[package]] +name = "safety-schemas" +version = "0.0.2" +description = "Schemas for Safety tools" +optional = false +python-versions = ">=3.7" +files = [ + {file = "safety_schemas-0.0.2-py3-none-any.whl", hash = "sha256:277c077ce6e53221874a87c29515ffdd2f3773a6db4d035a9f67cc98db3b8c7f"}, + {file = "safety_schemas-0.0.2.tar.gz", hash = "sha256:7d1b040ec06480f05cff6b45ea7a93e09c8942df864fb0d01ddeb67c323cfa8c"}, +] + +[package.dependencies] +dparse = ">=0.6.4b0" +packaging = ">=21.0" +pydantic = "*" +ruamel-yaml = ">=0.17.21" +typing-extensions = ">=4.7.1" [[package]] name = "setuptools" -version = "69.2.0" +version = "70.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"}, - {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"}, + {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, + {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] [[package]] name = "sniffio" @@ -1897,20 +2076,20 @@ files = [ [[package]] name = "sphinx" -version = "7.2.6" +version = "7.3.7" description = "Python documentation generator" optional = false python-versions = ">=3.9" files = [ - {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, - {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, + {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, + {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, ] [package.dependencies] -alabaster = ">=0.7,<0.8" +alabaster = ">=0.7.14,<0.8.0" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.21" +docutils = ">=0.18.1,<0.22" imagesize = ">=1.3" Jinja2 = ">=3.0" packaging = ">=21.0" @@ -1926,8 +2105,8 @@ sphinxcontrib-serializinghtml = ">=1.1.9" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] -test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] +lint = ["flake8 (>=3.5.0)", "importlib_metadata", "mypy (==1.9.0)", "pytest (>=6.0)", "ruff (==0.3.7)", "sphinx-lint", "tomli", "types-docutils", "types-requests"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=6.0)", "setuptools (>=67.0)"] [[package]] name = "sphinx-basic-ng" @@ -2084,31 +2263,48 @@ files = [ [[package]] name = "typeguard" -version = "4.1.5" +version = "4.3.0" description = "Run-time type checker for Python" optional = false python-versions = ">=3.8" files = [ - {file = "typeguard-4.1.5-py3-none-any.whl", hash = "sha256:8923e55f8873caec136c892c3bed1f676eae7be57cdb94819281b3d3bc9c0953"}, - {file = "typeguard-4.1.5.tar.gz", hash = "sha256:ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"}, + {file = "typeguard-4.3.0-py3-none-any.whl", hash = "sha256:4d24c5b39a117f8a895b9da7a9b3114f04eb63bade45a4492de49b175b6f7dfa"}, + {file = "typeguard-4.3.0.tar.gz", hash = "sha256:92ee6a0aec9135181eae6067ebd617fd9de8d75d714fb548728a4933b1dea651"}, ] [package.dependencies] -typing-extensions = {version = ">=4.7.0", markers = "python_version < \"3.12\""} +typing-extensions = ">=4.10.0" [package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.3.0)"] test = ["coverage[toml] (>=7)", "mypy (>=1.2.0)", "pytest (>=7)"] +[[package]] +name = "typer" +version = "0.12.3" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +files = [ + {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, + {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + [[package]] name = "typing-extensions" -version = "4.10.0" +version = "4.12.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, - {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, + {file = "typing_extensions-4.12.0-py3-none-any.whl", hash = "sha256:b349c66bea9016ac22978d800cfff206d5f9816951f12a7d0ec5578b0a819594"}, + {file = "typing_extensions-4.12.0.tar.gz", hash = "sha256:8cbcdc8606ebcb0d95453ad7dc5065e6237b6aa230a31e81d0f440c30fed5fd8"}, ] [[package]] @@ -2148,13 +2344,13 @@ standard = ["colorama (>=0.4)", "httptools (>=0.4.0)", "python-dotenv (>=0.13)", [[package]] name = "virtualenv" -version = "20.25.1" +version = "20.26.2" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, - {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, + {file = "virtualenv-20.26.2-py3-none-any.whl", hash = "sha256:a624db5e94f01ad993d476b9ee5346fdf7b9de43ccaee0e0197012dc838a0e9b"}, + {file = "virtualenv-20.26.2.tar.gz", hash = "sha256:82bf0f4eebbb78d36ddaee0283d43fe5736b53880b8a8cdcd37390a07ac3741c"}, ] [package.dependencies] @@ -2163,7 +2359,7 @@ filelock = ">=3.12.2,<4" platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] @@ -2299,4 +2495,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = ">=3.11,<3.12" -content-hash = "99f09ca291ce23cc35cdfb07cc5b4a90964571a0f5f1479271c7440046b6cec8" +content-hash = "e44ec3dbceccbd10f931e5456225e8ddfd36a5279ae6f3766a846d24c8fc9e71" diff --git a/pyproject.toml b/pyproject.toml index 40a4f69..d78d6d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,13 +12,14 @@ classifiers = [ "Development Status :: 3 - Alpha", ] keywords = ["OpenAPI", "Generator", "Python", "async"] +package-mode = true [tool.poetry.urls] Changelog = "https://github.com/MarcoMuellner/openapi-python-generator/releases" [tool.poetry.dependencies] python = ">=3.11,<3.12" -httpx = {extras = ["all"], version = "^0.23.0"} +httpx = "*" pydantic = "^2.6.2" orjson = "^3.7.2" openapi-pydantic = "^0.4.0" diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index 8dfa745..b1c2248 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -1,5 +1,5 @@ from pathlib import Path -from typing import Optional +from typing import Any, Optional from typing import Union import black @@ -10,7 +10,6 @@ from black import NothingChanged from httpx import ConnectError from httpx import ConnectTimeout -from openapi_pydantic import OpenAPI from pydantic import ValidationError from .common import HTTPLibrary @@ -43,20 +42,21 @@ def write_code(path: Path, content) -> None: raise e -def get_open_api(source: Union[str, Path]) -> OpenAPI: +def get_open_api(source: Union[str, Path]) -> Any: """ Tries to fetch the openapi.json file from the web or load from a local file. Returns the according OpenAPI object. :param source: :return: """ + text = None + try: if not isinstance(source, Path) and ( source.startswith("http://") or source.startswith("https://") ): - return OpenAPI(**orjson.loads(httpx.get(source).text)) - + text = httpx.get(source).text with open(source, "r") as f: - return OpenAPI(**orjson.loads(f.read())) + text = f.read() except FileNotFoundError: click.echo( f"File {source} not found. Please make sure to pass the path to the OpenAPI 3.0 specification." @@ -71,6 +71,13 @@ def get_open_api(source: Union[str, Path]) -> OpenAPI: ) raise + if '"openapi": "3.0.3"' in text: + from openapi_pydantic.v3.v3_0_3.open_api import OpenAPI + else: + from openapi_pydantic.v3.v3_1_0.open_api import OpenAPI + + return OpenAPI(**orjson.loads(text)) + def write_data(data: ConversionResult, output: Union[str, Path]) -> None: """ From 2baa6e029a9e85fcbc52b1ec6c9ea765c6872c7c Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 10 Jun 2024 02:24:20 +0700 Subject: [PATCH 14/28] support yaml and v.3.0.X --- .vscode/launch.json | 2 +- .vscode/settings.json | 3 + poetry.lock | 33 +- pyproject.toml | 2 + src/openapi_python_generator/__init__.py | 3 + src/openapi_python_generator/common.py | 10 +- src/openapi_python_generator/generate_data.py | 24 +- .../language_converters/python/common.py | 1 - .../language_converters/python/generator.py | 12 +- .../python/model_generator.py | 449 +- .../python/service_generator.py | 178 +- .../language_converters/python/utils.py | 267 + src/openapi_python_generator/models.py | 18 +- tests/test_data/openapi.yaml | 22181 ++++++++++++++++ 14 files changed, 22872 insertions(+), 311 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/openapi_python_generator/language_converters/python/utils.py create mode 100644 tests/test_data/openapi.yaml diff --git a/.vscode/launch.json b/.vscode/launch.json index b21da67..85e6f64 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,7 +9,7 @@ "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/src/openapi_python_generator", - "args": ["--library", "aiohttp", "./openapi.json", "test_api"], + "args": ["--library", "aiohttp", "./openapi.yaml", "test_api"], "cwd": "${workspaceFolder}/tests/test_data" } ] diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a6735e5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.analysis.typeCheckingMode": "off" +} \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index eab6d06..527bf0b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -287,6 +287,17 @@ d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] +[[package]] +name = "case-converter" +version = "1.1.0" +description = "A string case conversion package." +optional = false +python-versions = "*" +files = [ + {file = "case-converter-1.1.0.tar.gz", hash = "sha256:2ed3fc6e3ffa8d601f9a31ffcbc8fbd19eaeb48671a79a8ef16394672824510e"}, + {file = "case_converter-1.1.0-py3-none-any.whl", hash = "sha256:d0fbc665a4fd410e454630bcf5168dce62e147a98512647ed48b0a6b556986e3"}, +] + [[package]] name = "certifi" version = "2024.2.2" @@ -624,6 +635,26 @@ files = [ {file = "darglint-1.8.1.tar.gz", hash = "sha256:080d5106df149b199822e7ee7deb9c012b49891538f14a11be681044f0bb20da"}, ] +[[package]] +name = "deep-translator" +version = "1.11.4" +description = "A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "deep_translator-1.11.4-py3-none-any.whl", hash = "sha256:d635df037e23fa35d12fd42dab72a0b55c9dd19e6292009ee7207e3f30b9e60a"}, + {file = "deep_translator-1.11.4.tar.gz", hash = "sha256:801260c69231138707ea88a0955e484db7d40e210c9e0ae0f77372ffda5f4bf5"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.9.1,<5.0.0" +requests = ">=2.23.0,<3.0.0" + +[package.extras] +ai = ["openai (>=0.27.6,<0.28.0)"] +docx = ["docx2txt (>=0.8,<0.9)"] +pdf = ["pypdf (>=3.3.0,<4.0.0)"] + [[package]] name = "distlib" version = "0.3.8" @@ -2495,4 +2526,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = ">=3.11,<3.12" -content-hash = "e44ec3dbceccbd10f931e5456225e8ddfd36a5279ae6f3766a846d24c8fc9e71" +content-hash = "c21cbc24f5d1463bc1faec34c33f376301878ecc6a402d29c7190619107a85ba" diff --git a/pyproject.toml b/pyproject.toml index d78d6d7..37bc7cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,8 @@ Jinja2 = "^3.1.2" click = "^8.1.3" black = ">=21.10b0" isort = ">=5.10.1" +deep-translator = "^1.11.4" +case-converter = "^1.1.0" [tool.poetry.dev-dependencies] Pygments = ">=2.10.0" diff --git a/src/openapi_python_generator/__init__.py b/src/openapi_python_generator/__init__.py index 7f395e6..0644278 100644 --- a/src/openapi_python_generator/__init__.py +++ b/src/openapi_python_generator/__init__.py @@ -1,4 +1,5 @@ """Python client from an OPENAPI 3.0 specification in seconds.""" + try: from importlib.metadata import PackageNotFoundError # type: ignore from importlib.metadata import version @@ -10,3 +11,5 @@ __version__ = version(__name__) except PackageNotFoundError: # pragma: no cover __version__ = "unknown" + +OPENAPI_VERSION = None diff --git a/src/openapi_python_generator/common.py b/src/openapi_python_generator/common.py index d8880fb..4c129e9 100644 --- a/src/openapi_python_generator/common.py +++ b/src/openapi_python_generator/common.py @@ -2,7 +2,15 @@ from typing import Dict from typing import Optional -from openapi_python_generator.models import LibraryConfig +from pydantic import BaseModel + + +class LibraryConfig(BaseModel): + name: str + library_name: str + template_name: str + include_async: bool + include_sync: bool class HTTPLibrary(str, Enum): diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index b1c2248..f0cff7f 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -1,5 +1,5 @@ from pathlib import Path -from typing import Any, Optional +from typing import TYPE_CHECKING, Any, Optional from typing import Union import black @@ -7,17 +7,20 @@ import httpx import isort import orjson +import yaml from black import NothingChanged from httpx import ConnectError from httpx import ConnectTimeout from pydantic import ValidationError +import openapi_python_generator from .common import HTTPLibrary from .common import library_config_dict -from .language_converters.python.generator import generator from .language_converters.python.jinja_config import SERVICE_TEMPLATE from .language_converters.python.jinja_config import create_jinja_env -from .models import ConversionResult + +if TYPE_CHECKING: + from .models import ConversionResult def write_code(path: Path, content) -> None: @@ -71,15 +74,22 @@ def get_open_api(source: Union[str, Path]) -> Any: ) raise - if '"openapi": "3.0.3"' in text: + try: + data = orjson.loads(text) + except: + data = yaml.safe_load(text) + + if data["openapi"].startswith("3.0"): + openapi_python_generator.OPENAPI_VERSION = "3.0" from openapi_pydantic.v3.v3_0_3.open_api import OpenAPI else: + openapi_python_generator.OPENAPI_VERSION = "3.1" from openapi_pydantic.v3.v3_1_0.open_api import OpenAPI - return OpenAPI(**orjson.loads(text)) + return OpenAPI(**data) -def write_data(data: ConversionResult, output: Union[str, Path]) -> None: +def write_data(data: "ConversionResult", output: Union[str, Path]) -> None: """ This function will firstly create the folderstrucutre of output, if it doesn't exist. Then it will create the models from data.models into the models sub module of the output folder. After this, the services will be created @@ -156,6 +166,8 @@ def generate_data( data = get_open_api(source) click.echo(f"Generating data from {source}") + from .language_converters.python.generator import generator + result = generator( data, library_config_dict[library], diff --git a/src/openapi_python_generator/language_converters/python/common.py b/src/openapi_python_generator/language_converters/python/common.py index e3c55c4..bf1d18e 100644 --- a/src/openapi_python_generator/language_converters/python/common.py +++ b/src/openapi_python_generator/language_converters/python/common.py @@ -2,7 +2,6 @@ import re from typing import Optional - _use_orjson: bool = False _custom_template_path: str = None _symbol_ascii_strip_re = re.compile(r"[^A-Za-z0-9_]") diff --git a/src/openapi_python_generator/language_converters/python/generator.py b/src/openapi_python_generator/language_converters/python/generator.py index c39ab63..188bae8 100644 --- a/src/openapi_python_generator/language_converters/python/generator.py +++ b/src/openapi_python_generator/language_converters/python/generator.py @@ -1,6 +1,10 @@ from typing import Optional +from openapi_python_generator import OPENAPI_VERSION -from openapi_pydantic import OpenAPI +if OPENAPI_VERSION == "3.0": + from openapi_pydantic.v3.v3_0_3.open_api import OpenAPI +else: + from openapi_pydantic import OpenAPI from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.api_config_generator import ( @@ -13,7 +17,7 @@ generate_services, ) from openapi_python_generator.models import ConversionResult -from openapi_python_generator.models import LibraryConfig +from openapi_python_generator.common import LibraryConfig def generator( @@ -31,12 +35,12 @@ def generator( common.set_custom_template_path(custom_template_path) if data.components is not None: - models = generate_models(data.components) + models = generate_models(data.components, data.paths) else: models = [] if data.paths is not None: - services = generate_services(data.paths, library_config) + services = generate_services(data.paths, data.components, library_config) else: services = [] diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 0b2486b..5ce58a6 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -1,13 +1,21 @@ -import itertools import re import traceback -from typing import List -from typing import Optional +from typing import Dict, List +from caseconverter import pascalcase import click -from openapi_pydantic import Components -from openapi_pydantic import Reference -from openapi_pydantic import Schema + +import openapi_python_generator +from openapi_python_generator.language_converters.python.service_generator import ( + HTTP_OPERATIONS, +) +from openapi_python_generator.language_converters.python.utils import ( + _generate_property_from_reference, + _generate_property_from_schema, +) + +if openapi_python_generator.OPENAPI_VERSION is None: + raise ValueError("OPENAPI_VERSION must be set") from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.jinja_config import ( @@ -20,240 +28,27 @@ create_jinja_env, ) from openapi_python_generator.models import Model -from openapi_python_generator.models import Property -from openapi_python_generator.models import TypeConversion - -def type_converter( # noqa: C901 - schema: Schema, - required: bool = False, - model_name: Optional[str] = None, -) -> TypeConversion: - """ - Converts an OpenAPI type to a Python type. - :param schema: Schema containing the type to be converted - :param model_name: Name of the original model on which the type is defined - :param required: Flag indicating if the type is required by the class - :return: The converted type - """ - if required: - pre_type = "" - post_type = "" - else: - pre_type = "Optional[" - post_type = "]" - - original_type = schema.type if schema.type is not None else "object" - import_types: Optional[List[str]] = None - - if schema.allOf is not None: - conversions = [] - for sub_schema in schema.allOf: - if isinstance(sub_schema, Schema): - conversions.append(type_converter(sub_schema, True)) - else: - import_type = common.normalize_symbol(sub_schema.ref.split("/")[-1]) - if import_type == model_name: - conversions.append( - TypeConversion( - original_type=sub_schema.ref, - converted_type='"' + model_name + '"', - import_types=None, - ) - ) - else: - import_types = [f"from .{import_type} import {import_type}"] - conversions.append( - TypeConversion( - original_type=sub_schema.ref, - converted_type=import_type, - import_types=import_types, - ) - ) - - original_type = ( - "tuple<" + ",".join([i.original_type for i in conversions]) + ">" - ) - if len(conversions) == 1: - converted_type = conversions[0].converted_type - else: - converted_type = ( - "Tuple[" + ",".join([i.converted_type for i in conversions]) + "]" - ) - - converted_type = pre_type + converted_type + post_type - import_types = [ - i.import_types[0] for i in conversions if i.import_types is not None - ] - - elif schema.oneOf is not None or schema.anyOf is not None: - used = schema.oneOf if schema.oneOf is not None else schema.anyOf - used = used if used is not None else [] - conversions = [] - for sub_schema in used: - if isinstance(sub_schema, Schema): - conversions.append(type_converter(sub_schema, True)) - else: - import_type = common.normalize_symbol(sub_schema.ref.split("/")[-1]) - import_types = [f"from .{import_type} import {import_type}"] - conversions.append( - TypeConversion( - original_type=sub_schema.ref, - converted_type=import_type, - import_types=import_types, - ) - ) - original_type = ( - "union<" + ",".join([i.original_type for i in conversions]) + ">" - ) - - if len(conversions) == 1: - converted_type = conversions[0].converted_type - else: - converted_type = ( - "Union[" + ",".join([i.converted_type for i in conversions]) + "]" - ) - - converted_type = pre_type + converted_type + post_type - import_types = list( - itertools.chain( - *[i.import_types for i in conversions if i.import_types is not None] - ) - ) - # We only want to auto convert to datetime if orjson is used throghout the code, otherwise we can not - # serialize it to JSON. - elif schema.type == "string" and ( - schema.schema_format is None or not common.get_use_orjson() - ): - converted_type = pre_type + "str" + post_type - elif ( - schema.type == "string" - and schema.schema_format.startswith("uuid") - and common.get_use_orjson() - ): - if len(schema.schema_format) > 4 and schema.schema_format[4].isnumeric(): - uuid_type = schema.schema_format.upper() - converted_type = pre_type + uuid_type + post_type - import_types = ["from pydantic import " + uuid_type] - else: - converted_type = pre_type + "UUID" + post_type - import_types = ["from uuid import UUID"] - elif schema.type == "string" and schema.schema_format == "date-time": - converted_type = pre_type + "datetime" + post_type - import_types = ["from datetime import datetime"] - elif schema.type == "integer": - converted_type = pre_type + "int" + post_type - elif schema.type == "number": - converted_type = pre_type + "float" + post_type - elif schema.type == "boolean": - converted_type = pre_type + "bool" + post_type - elif schema.type == "array": - retVal = pre_type + "List[" - if isinstance(schema.items, Reference): - converted_reference = _generate_property_from_reference( - model_name, "", schema.items, schema, required - ) - import_types = converted_reference.type.import_types - original_type = "array<" + converted_reference.type.original_type + ">" - retVal += converted_reference.type.converted_type - elif isinstance(schema.items, Schema): - original_type = "array<" + str(schema.items.type) + ">" - retVal += type_converter(schema.items, True).converted_type - else: - original_type = "array" - retVal += "Any" - - converted_type = retVal + "]" + post_type - elif schema.type == "object": - converted_type = pre_type + "Dict[str, Any]" + post_type - elif schema.type == "null": - converted_type = pre_type + "None" + post_type - elif schema.type is None: - converted_type = pre_type + "Any" + post_type - else: - raise TypeError(f"Unknown type: {schema.type}") - - return TypeConversion( - original_type=original_type, - converted_type=converted_type, - import_types=import_types, - ) - - -def _generate_property_from_schema( - model_name: str, name: str, schema: Schema, parent_schema: Optional[Schema] = None -) -> Property: - """ - Generates a property from a schema. It takes the type of the schema and converts it to a python type, and then - creates the according property. - :param model_name: Name of the model this property belongs to - :param name: Name of the schema - :param schema: schema to be converted - :param parent_schema: Component this belongs to - :return: Property - """ - required = ( - parent_schema is not None - and parent_schema.required is not None - and name in parent_schema.required - ) - return Property( - name=name, - type=type_converter(schema, required, model_name), - required=required, - default=None if required else "None", - ) - - -def _generate_property_from_reference( - model_name: str, - name: str, - reference: Reference, - parent_schema: Optional[Schema] = None, - force_required: bool = False, -) -> Property: - """ - Generates a property from a reference. It takes the name of the reference as the type, and then - returns a property type - :param name: Name of the schema - :param reference: reference to be converted - :param parent_schema: Component this belongs to - :param force_required: Force the property to be required - :return: Property and model to be imported by the file - """ - required = ( - parent_schema is not None - and parent_schema.required is not None - and name in parent_schema.required - ) or force_required - import_model = common.normalize_symbol(reference.ref.split("/")[-1]) - - if import_model == model_name: - type_conv = TypeConversion( - original_type=reference.ref, - converted_type=( - import_model if required else 'Optional["' + import_model + '"]' - ), - import_types=None, - ) - else: - type_conv = TypeConversion( - original_type=reference.ref, - converted_type=( - import_model if required else "Optional[" + import_model + "]" - ), - import_types=[f"from .{import_model} import {import_model}"], - ) - return Property( - name=name, - type=type_conv, - required=required, - default=None if required else "None", - import_type=[import_model], - ) +if openapi_python_generator.OPENAPI_VERSION == "3.0": + from openapi_pydantic.v3.v3_0_3.components import Components + from openapi_pydantic.v3.v3_0_3.reference import Reference + from openapi_pydantic.v3.v3_0_3.path_item import PathItem + from openapi_pydantic.v3.v3_0_3.operation import Operation + from openapi_pydantic.v3.v3_0_3.response import Response + from openapi_pydantic.v3.v3_0_3.schema import Schema +else: + from openapi_pydantic import Components + from openapi_pydantic import Reference + from openapi_pydantic import PathItem + from openapi_pydantic import Operation + from openapi_pydantic import Response + from openapi_pydantic import Schema -def generate_models(components: Components) -> List[Model]: +def generate_models( + components: Components, + paths: Dict[str, PathItem], +) -> List[Model]: """ Receives components from an OpenAPI 3.0 specification and generates the models from it. It does so, by iterating over the components.schemas dictionary. For each schema, it checks if @@ -270,6 +65,7 @@ def generate_models(components: Components) -> List[Model]: jinja_env = create_jinja_env() for schema_name, schema_or_reference in components.schemas.items(): name = common.normalize_symbol(schema_name) + name = pascalcase(name) if schema_or_reference.enum is not None: value_dict = schema_or_reference.dict() regex = re.compile(r"[\s\/=\*\+]+") @@ -330,4 +126,183 @@ def generate_models(components: Components) -> List[Model]: ) ) + for response_name, response in components.responses.items(): + name = pascalcase(response_name) + if response.content is None: + continue + if "application/json" not in response.content: + continue + media_type = response.content["application/json"] + + if media_type.media_type_schema is None: + continue + + if isinstance(media_type.media_type_schema, Reference): + ref_name = media_type.media_type_schema.ref.split("/")[-1] + ref_model_name = pascalcase(ref_name) + models.append( + Model( + file_name=name, + content=f"from .{ref_model_name} import {ref_model_name}\n\nclass {name}({ref_model_name}):\n pass", + openapi_object=Schema(), + properties=[], + ) + ) + continue + + properties = [] + property_iterator = ( + media_type.media_type_schema.properties.items() + if media_type.media_type_schema.properties is not None + else {} + ) + for prop_name, property in property_iterator: + if isinstance(property, Reference): + conv_property = _generate_property_from_reference( + name, prop_name, property, media_type.media_type_schema + ) + else: + conv_property = _generate_property_from_schema( + name, prop_name, property, media_type.media_type_schema + ) + properties.append(conv_property) + + generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( + schema_name=name, + schema=media_type.media_type_schema, + properties=properties, + ) + + try: + compile(generated_content, "", "exec") + except SyntaxError as e: # pragma: no cover + click.echo( + f"Error in model {name}: {traceback.format_exc()}" + ) # pragma: no cover + + models.append( + Model( + file_name=name, + content=generated_content, + openapi_object=media_type.media_type_schema, + properties=properties, + ) + ) + + for body_name, body in components.requestBodies.items(): + if body.content is None: + continue + if "application/json" not in body.content: + continue + media_type = body.content["application/json"] + + if media_type.media_type_schema is None: + continue + + if not isinstance(media_type.media_type_schema, Schema): + continue + + name = pascalcase(body_name) + + properties = [] + property_iterator = ( + media_type.media_type_schema.properties.items() + if media_type.media_type_schema.properties is not None + else {} + ) + for prop_name, property in property_iterator: + if isinstance(property, Reference): + conv_property = _generate_property_from_reference( + name, prop_name, property, media_type.media_type_schema + ) + else: + conv_property = _generate_property_from_schema( + name, prop_name, property, media_type.media_type_schema + ) + properties.append(conv_property) + + generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( + schema_name=name, + schema=media_type.media_type_schema, + properties=properties, + ) + + try: + compile(generated_content, "", "exec") + except SyntaxError as e: # pragma: no cover + click.echo(f"Error in model {name}: {traceback.format_exc()}") + + models.append( + Model( + file_name=name, + content=generated_content, + openapi_object=media_type.media_type_schema, + properties=properties, + ) + ) + + for path_name, path in paths.items(): + for http_operation in HTTP_OPERATIONS: + op: Operation = path.__getattribute__(http_operation) + if op is None: + continue + + for status, response in op.responses.items(): + if not status.startswith("2"): + continue + if not isinstance(response, Response): + continue + if response.content is None: + continue + if "application/json" not in response.content: + continue + media_type = response.content["application/json"] + + if media_type.media_type_schema is None: + continue + + if not isinstance(media_type.media_type_schema, Schema): + continue + + name = f"{pascalcase(path_name.replace('/', '_'))}{http_operation.capitalize()}Response" + + properties = [] + property_iterator = ( + media_type.media_type_schema.properties.items() + if media_type.media_type_schema.properties is not None + else {} + ) + for prop_name, property in property_iterator: + if isinstance(property, Reference): + conv_property = _generate_property_from_reference( + name, prop_name, property, media_type.media_type_schema + ) + else: + conv_property = _generate_property_from_schema( + name, prop_name, property, media_type.media_type_schema + ) + properties.append(conv_property) + + generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( + schema_name=name, + schema=media_type.media_type_schema, + properties=properties, + ) + + try: + compile(generated_content, "", "exec") + except SyntaxError as e: # pragma: no cover + click.echo( + f"Error in model {name}: {traceback.format_exc()}" + ) # pragma: no cover + + models.append( + Model( + file_name=name, + content=generated_content, + openapi_object=media_type.media_type_schema, + properties=properties, + ) + ) + return models diff --git a/src/openapi_python_generator/language_converters/python/service_generator.py b/src/openapi_python_generator/language_converters/python/service_generator.py index b43c8b1..d0a573c 100644 --- a/src/openapi_python_generator/language_converters/python/service_generator.py +++ b/src/openapi_python_generator/language_converters/python/service_generator.py @@ -5,26 +5,42 @@ from typing import Optional from typing import Tuple from typing import Union +from deep_translator import GoogleTranslator +from caseconverter import snakecase +from caseconverter import pascalcase import click -from openapi_pydantic import MediaType -from openapi_pydantic import Operation -from openapi_pydantic import Parameter -from openapi_pydantic import PathItem -from openapi_pydantic import Reference -from openapi_pydantic import RequestBody -from openapi_pydantic import Response -from openapi_pydantic import Schema +from openapi_pydantic import DataType +import openapi_python_generator +from openapi_python_generator.language_converters.python.utils import type_converter + +if openapi_python_generator.OPENAPI_VERSION == "3.0": + from openapi_pydantic.v3.v3_0_3.media_type import MediaType + from openapi_pydantic.v3.v3_0_3.operation import Operation + from openapi_pydantic.v3.v3_0_3.parameter import Parameter + from openapi_pydantic.v3.v3_0_3.path_item import PathItem + from openapi_pydantic.v3.v3_0_3.reference import Reference + from openapi_pydantic.v3.v3_0_3.request_body import RequestBody + from openapi_pydantic.v3.v3_0_3.response import Response + from openapi_pydantic.v3.v3_0_3.schema import Schema + from openapi_pydantic.v3.v3_0_3.components import Components +else: + from openapi_pydantic import MediaType + from openapi_pydantic import Operation + from openapi_pydantic import Parameter + from openapi_pydantic import PathItem + from openapi_pydantic import Reference + from openapi_pydantic import RequestBody + from openapi_pydantic import Response + from openapi_pydantic import Schema + from openapi_pydantic import Components from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.common import normalize_symbol from openapi_python_generator.language_converters.python.jinja_config import ( create_jinja_env, ) -from openapi_python_generator.language_converters.python.model_generator import ( - type_converter, -) -from openapi_python_generator.models import LibraryConfig +from openapi_python_generator.common import LibraryConfig from openapi_python_generator.models import OpReturnType from openapi_python_generator.models import Service from openapi_python_generator.models import ServiceOperation @@ -60,6 +76,8 @@ def generate_body_param(operation: Operation) -> Union[str, None]: return "[i.dict() for i in data]" elif schema.type == "object": return "data" + elif schema.type is None and schema.oneOf is not None: + return "data.dict()" else: raise Exception( f"Unsupported schema type for request body: {schema.type}" @@ -70,10 +88,15 @@ def generate_body_param(operation: Operation) -> Union[str, None]: ) # pragma: no cover -def generate_params(operation: Operation) -> str: +def generate_params( + operation: Operation, + components: Components, +) -> str: def _generate_params_from_content(content: Union[Reference, Schema]): if isinstance(content, Reference): - return f"data : {content.ref.split('/')[-1]}" + type_name = content.ref.split("/")[-1] + type_name = pascalcase(type_name) + return f"data : {type_name}" else: return f"data : {type_converter(content, True).converted_type}" @@ -84,8 +107,15 @@ def _generate_params_from_content(content: Union[Reference, Schema]): default_params = "" if operation.parameters is not None: for param in operation.parameters: - if not isinstance(param, Parameter): - continue # pragma: no cover + if not isinstance(param, Parameter) and not isinstance(param, Reference): + raise NotImplementedError(f"Unsupported parameter type: {type(param)}") + + if isinstance(param, Reference): + ref = param.ref.split("/")[-1] + param = components.parameters.get(ref) + if param is None: + raise Exception(f"Unable to find parameter {ref}") + converted_result = "" required = False param_name_cleaned = common.normalize_symbol(param.name) @@ -146,6 +176,8 @@ def _generate_params_from_content(content: Union[Reference, Schema]): raise Exception( f"Unsupported media type schema for {str(operation)}" ) # pragma: no cover + elif isinstance(operation.requestBody, Reference): + params += f"data : {operation.requestBody.ref.split('/')[-1]}, " else: raise Exception( f"Unsupported request body type: {type(operation.requestBody)}" @@ -171,13 +203,21 @@ def generate_operation_id( def _generate_params( - operation: Operation, param_in: Literal["query", "header"] = "query" + operation: Operation, + components: Components, + param_in: Literal["query", "header"] = "query", ): if operation.parameters is None: return [] params = [] for param in operation.parameters: + if isinstance(param, Reference): + ref = param.ref.split("/")[-1] + param = components.parameters.get(ref) + if param is None: + raise Exception(f"Unable to find parameter {ref}") + if isinstance(param, Parameter) and param.param_in == param_in: param_name_cleaned = common.normalize_symbol(param.name) params.append(f"{param.name!r} : {param_name_cleaned}") @@ -185,15 +225,23 @@ def _generate_params( return params -def generate_query_params(operation: Operation) -> List[str]: - return _generate_params(operation, "query") +def generate_query_params( + operation: Operation, + components: Components, +) -> List[str]: + return _generate_params(operation, components, "query") -def generate_header_params(operation: Operation) -> List[str]: - return _generate_params(operation, "header") +def generate_header_params( + operation: Operation, + components: Components, +) -> List[str]: + return _generate_params(operation, components, "header") -def generate_return_type(operation: Operation) -> OpReturnType: +def generate_return_type( + operation: Operation, http_opertaion: str, path_name: str +) -> OpReturnType: if operation.responses is None: return OpReturnType(type=None, status_code=200, complex_type=False) @@ -220,10 +268,12 @@ def generate_return_type(operation: Operation) -> OpReturnType: if isinstance(media_type_schema, MediaType): if isinstance(media_type_schema.media_type_schema, Reference): + response_model_name = media_type_schema.media_type_schema.ref.split("/")[-1] + response_model_name = pascalcase(response_model_name) type_conv = TypeConversion( original_type=media_type_schema.media_type_schema.ref, - converted_type=media_type_schema.media_type_schema.ref.split("/")[-1], - import_types=[media_type_schema.media_type_schema.ref.split("/")[-1]], + converted_type=response_model_name, + import_types=[response_model_name], ) return OpReturnType( type=type_conv, @@ -231,26 +281,44 @@ def generate_return_type(operation: Operation) -> OpReturnType: complex_type=True, ) elif isinstance(media_type_schema.media_type_schema, Schema): - converted_result = type_converter(media_type_schema.media_type_schema, True) - if "array" in converted_result.original_type and isinstance( - converted_result.import_types, list - ): - matched = re.findall(r"List\[(.+)\]", converted_result.converted_type) - if len(matched) > 0: - list_type = matched[0] - else: - raise Exception( - f"Unable to parse list type from {converted_result.converted_type}" - ) # pragma: no cover + if media_type_schema.media_type_schema.type == DataType.OBJECT: + response_model_name = f"{pascalcase(path_name.replace('/', '_'))}{http_opertaion.capitalize()}Response" + type_conv = TypeConversion( + original_type=response_model_name, + converted_type=response_model_name, + import_types=[response_model_name], + ) + return OpReturnType( + type=type_conv, + status_code=good_responses[0][0], + complex_type=True, + ) else: - list_type = None - return OpReturnType( - type=converted_result, - status_code=good_responses[0][0], - complex_type=converted_result.import_types is not None - and len(converted_result.import_types) > 0, - list_type=list_type, - ) + converted_result = type_converter( + media_type_schema.media_type_schema, + True, + ) + if "array" in converted_result.original_type and isinstance( + converted_result.import_types, list + ): + matched = re.findall( + r"List\[(.+)\]", converted_result.converted_type + ) + if len(matched) > 0: + list_type = matched[0] + else: + raise Exception( + f"Unable to parse list type from {converted_result.converted_type}" + ) # pragma: no cover + else: + list_type = None + return OpReturnType( + type=converted_result, + status_code=good_responses[0][0], + complex_type=converted_result.import_types is not None + and len(converted_result.import_types) > 0, + list_type=list_type, + ) else: raise Exception("Unknown media type schema type") # pragma: no cover elif media_type_schema is None: @@ -264,7 +332,9 @@ def generate_return_type(operation: Operation) -> OpReturnType: def generate_services( - paths: Dict[str, PathItem], library_config: LibraryConfig + paths: Dict[str, PathItem], + components: Components, + library_config: LibraryConfig, ) -> List[Service]: """ Generates services from a paths object. @@ -274,13 +344,15 @@ def generate_services( jinja_env = create_jinja_env() def generate_service_operation( - op: Operation, path_name: str, async_type: bool + op: Operation, + path_name: str, + async_type: bool, ) -> ServiceOperation: - params = generate_params(op) + params = generate_params(op, components) operation_id = generate_operation_id(op, http_operation, path_name) - query_params = generate_query_params(op) - header_params = generate_header_params(op) - return_type = generate_return_type(op) + query_params = generate_query_params(op, components) + header_params = generate_header_params(op, components) + return_type = generate_return_type(op, http_operation, path_name) body_param = generate_body_param(op) so = ServiceOperation( @@ -304,7 +376,11 @@ def generate_service_operation( ) if op.tags is not None and len(op.tags) > 0: - so.tag = normalize_symbol(op.tags[0]) + tag = op.tags[0] + if tag is not None: + tag = GoogleTranslator(source="auto", target="en").translate(tag) + tag = snakecase(tag) + so.tag = normalize_symbol(tag) try: compile(so.content, "", "exec") @@ -354,7 +430,7 @@ def generate_service_operation( for tag in tags: services.append( Service( - file_name=f"async_{tag}_service", + file_name=f"async_{tag + '_' if tag else ''}service", operations=[ so for so in service_ops if so.tag == tag and so.async_client ], diff --git a/src/openapi_python_generator/language_converters/python/utils.py b/src/openapi_python_generator/language_converters/python/utils.py new file mode 100644 index 0000000..73040f5 --- /dev/null +++ b/src/openapi_python_generator/language_converters/python/utils.py @@ -0,0 +1,267 @@ +import itertools +from typing import List, Optional +from caseconverter import pascalcase + +import openapi_python_generator + +from openapi_python_generator.language_converters.python import common +from openapi_python_generator.models import TypeConversion +from openapi_python_generator.models import Property +from openapi_python_generator.models import TypeConversion + +if openapi_python_generator.OPENAPI_VERSION == "3.0": + from openapi_pydantic.v3.v3_0_3.reference import Reference + from openapi_pydantic.v3.v3_0_3.schema import Schema + from openapi_pydantic.v3.v3_0_3.parameter import Parameter +else: + from openapi_pydantic import Reference + from openapi_pydantic import Schema + from openapi_pydantic import Parameter + + +def _generate_property_from_reference( + model_name: str, + name: str, + reference: Reference, + parent_schema: Optional[Schema] = None, + force_required: bool = False, +) -> Property: + """ + Generates a property from a reference. It takes the name of the reference as the type, and then + returns a property type + :param name: Name of the schema + :param reference: reference to be converted + :param parent_schema: Component this belongs to + :param force_required: Force the property to be required + :return: Property and model to be imported by the file + """ + required = ( + parent_schema is not None + and parent_schema.required is not None + and name in parent_schema.required + ) or force_required + import_model = common.normalize_symbol(reference.ref.split("/")[-1]) + import_model = pascalcase(import_model) + + if import_model == model_name: + type_conv = TypeConversion( + original_type=reference.ref, + converted_type=( + import_model if required else 'Optional["' + import_model + '"]' + ), + import_types=None, + ) + else: + type_conv = TypeConversion( + original_type=reference.ref, + converted_type=( + import_model if required else "Optional[" + import_model + "]" + ), + import_types=[f"from .{import_model} import {import_model}"], + ) + return Property( + name=name, + type=type_conv, + required=required, + default=None if required else "None", + import_type=[import_model], + ) + + +def _generate_property_from_schema( + model_name: str, + name: str, + schema: Schema, + parent_schema: Optional[Schema] = None, +) -> Property: + """ + Generates a property from a schema. It takes the type of the schema and converts it to a python type, and then + creates the according property. + :param model_name: Name of the model this property belongs to + :param name: Name of the schema + :param schema: schema to be converted + :param parent_schema: Component this belongs to + :return: Property + """ + required = ( + parent_schema is not None + and parent_schema.required is not None + and name in parent_schema.required + ) + return Property( + name=name, + type=type_converter(schema, required, model_name), + required=required, + default=None if required else "None", + ) + + +def _generate_property_from_paramter( + model_name: str, + name: str, + parameter: Parameter, + parent_schema: Optional[Schema] = None, +): + return _generate_property_from_schema( + model_name, + name, + parameter.param_schema, + parent_schema, + ) + + +def type_converter( # noqa: C901 + schema: Schema, + required: bool = False, + model_name: Optional[str] = None, +) -> TypeConversion: + """ + Converts an OpenAPI type to a Python type. + :param schema: Schema containing the type to be converted + :param model_name: Name of the original model on which the type is defined + :param required: Flag indicating if the type is required by the class + :return: The converted type + """ + if required: + pre_type = "" + post_type = "" + else: + pre_type = "Optional[" + post_type = "]" + + original_type = schema.type if schema.type is not None else "object" + import_types: Optional[List[str]] = None + + if schema.allOf is not None: + conversions = [] + for sub_schema in schema.allOf: + if isinstance(sub_schema, Schema): + conversions.append(type_converter(sub_schema, True)) + else: + import_type = common.normalize_symbol(sub_schema.ref.split("/")[-1]) + if import_type == model_name: + conversions.append( + TypeConversion( + original_type=sub_schema.ref, + converted_type='"' + model_name + '"', + import_types=None, + ) + ) + else: + import_types = [f"from .{import_type} import {import_type}"] + conversions.append( + TypeConversion( + original_type=sub_schema.ref, + converted_type=import_type, + import_types=import_types, + ) + ) + + original_type = ( + "tuple<" + ",".join([i.original_type for i in conversions]) + ">" + ) + if len(conversions) == 1: + converted_type = conversions[0].converted_type + else: + converted_type = ( + "Tuple[" + ",".join([i.converted_type for i in conversions]) + "]" + ) + + converted_type = pre_type + converted_type + post_type + import_types = [ + i.import_types[0] for i in conversions if i.import_types is not None + ] + + elif schema.oneOf is not None or schema.anyOf is not None: + used = schema.oneOf if schema.oneOf is not None else schema.anyOf + used = used if used is not None else [] + conversions = [] + for sub_schema in used: + if isinstance(sub_schema, Schema): + conversions.append(type_converter(sub_schema, True)) + else: + import_type = pascalcase(sub_schema.ref.split("/")[-1]) + import_types = [f"from .{import_type} import {import_type}"] + conversions.append( + TypeConversion( + original_type=sub_schema.ref, + converted_type=import_type, + import_types=import_types, + ) + ) + + original_type = ( + "union<" + ",".join([i.original_type for i in conversions]) + ">" + ) + + if len(conversions) == 1: + converted_type = conversions[0].converted_type + else: + converted_type = ( + "Union[" + ",".join([i.converted_type for i in conversions]) + "]" + ) + + converted_type = pre_type + converted_type + post_type + import_types = list( + itertools.chain( + *[i.import_types for i in conversions if i.import_types is not None] + ) + ) + # We only want to auto convert to datetime if orjson is used throghout the code, otherwise we can not + # serialize it to JSON. + elif schema.type == "string" and ( + schema.schema_format is None or not common.get_use_orjson() + ): + converted_type = pre_type + "str" + post_type + elif ( + schema.type == "string" + and schema.schema_format.startswith("uuid") + and common.get_use_orjson() + ): + if len(schema.schema_format) > 4 and schema.schema_format[4].isnumeric(): + uuid_type = schema.schema_format.upper() + converted_type = pre_type + uuid_type + post_type + import_types = ["from pydantic import " + uuid_type] + else: + converted_type = pre_type + "UUID" + post_type + import_types = ["from uuid import UUID"] + elif schema.type == "string" and schema.schema_format == "date-time": + converted_type = pre_type + "datetime" + post_type + import_types = ["from datetime import datetime"] + elif schema.type == "integer": + converted_type = pre_type + "int" + post_type + elif schema.type == "number": + converted_type = pre_type + "float" + post_type + elif schema.type == "boolean": + converted_type = pre_type + "bool" + post_type + elif schema.type == "array": + retVal = pre_type + "List[" + if isinstance(schema.items, Reference): + converted_reference = _generate_property_from_reference( + model_name, "", schema.items, schema, required + ) + import_types = converted_reference.type.import_types + original_type = "array<" + converted_reference.type.original_type + ">" + retVal += converted_reference.type.converted_type + elif isinstance(schema.items, Schema): + original_type = "array<" + str(schema.items.type) + ">" + retVal += type_converter(schema.items, True).converted_type + else: + original_type = "array" + retVal += "Any" + + converted_type = retVal + "]" + post_type + elif schema.type == "object": + converted_type = pre_type + "Dict[str, Any]" + post_type + elif schema.type == "null": + converted_type = pre_type + "None" + post_type + elif schema.type is None: + converted_type = pre_type + "Any" + post_type + else: + raise TypeError(f"Unknown type: {schema.type}") + + return TypeConversion( + original_type=original_type, + converted_type=converted_type, + import_types=import_types, + ) diff --git a/src/openapi_python_generator/models.py b/src/openapi_python_generator/models.py index 5c60fa9..056765d 100644 --- a/src/openapi_python_generator/models.py +++ b/src/openapi_python_generator/models.py @@ -1,18 +1,18 @@ from typing import List from typing import Optional -from openapi_pydantic import Operation -from openapi_pydantic import PathItem -from openapi_pydantic import Schema from pydantic import BaseModel +import openapi_python_generator -class LibraryConfig(BaseModel): - name: str - library_name: str - template_name: str - include_async: bool - include_sync: bool +if openapi_python_generator.OPENAPI_VERSION == "3.0": + from openapi_pydantic.v3.v3_0_3.operation import Operation + from openapi_pydantic.v3.v3_0_3.path_item import PathItem + from openapi_pydantic.v3.v3_0_3.schema import Schema +else: + from openapi_pydantic import Operation + from openapi_pydantic import PathItem + from openapi_pydantic import Schema class TypeConversion(BaseModel): diff --git a/tests/test_data/openapi.yaml b/tests/test_data/openapi.yaml new file mode 100644 index 0000000..fad9c18 --- /dev/null +++ b/tests/test_data/openapi.yaml @@ -0,0 +1,22181 @@ +openapi: 3.0.1 +info: + title: Wildberries API + version: '' +tags: + - name: Загрузка + description: Создание и редактирование КТ + - name: Просмотр + description: Получение информации о созданных КТ, НМ и размерах + - name: Конфигуратор + - name: Медиафайлы + description: Работа с медиафайлами + - name: Теги + description: Сервис для работы с тегами КТ. Теги предназначены для быстрого поиска КТ в личном кабинете + - name: Корзина + - name: Установка цен и скидок + description: | + + Проверяйте статусы обновлений с помощью методов из раздела [Состояния загрузок](./#tag/Sostoyaniya-zagruzok). У методов может быть ответ Успешно (200), даже если не обновились данные у каких-то товаров или размеров (например, из-за слишком низкой цены или скидки) + - name: Состояния загрузок + description: "Когда вы обновляете цены или скидки, данные по каким-то товарам могут не обновиться. Например, если вы передали неправильную цену или скидку. Проверяйте статус загрузки с помощью метода [Состояние обработанной загрузки](./#tag/Istoriya-zagruzok/paths/~1api~1v2~1history~1tasks/get).\n\nСтатусы загрузки:\n\n * `3`\_— обработана, в товарах нет ошибок, цены и скидки обновились.\n * `4`\_— отменена.\n * `5`\_— обработана, но в\_товарах есть ошибки. Для товаров без ошибок цены и скидки обновились, а ошибки в\_остальных товарах можно получить с\_помощью метода [Детализация обработанной загрузки](./#tag/Sostoyaniya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get).\n * `6`\_— обработана, но\_во всех товарах есть ошибки. Их тоже можно получить с\_помощью метода [Детализация обработанной загрузки](#tag/Sostoyaniya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get).\n\n\nЕсли вы задаёте цены и скидки [в календаре акций](https://seller.wildberries.ru/dp-promo-calendar), загрузка с такими товарами попадает в обработку. Цены и скидки изменятся к началу акции.\n\n\nУ такой загрузки статус `1`, а получить информацию про нее можно с помощью методов [Детализация необработанной загрузки](./#tag/Istoriya-zagruzok/paths/~1api~1v2~1buffer~1goods~1task/get) и [Состояние необработанной загрузки](#tag/Istoriya-zagruzok/paths/~1api~1v2~1buffer~1tasks/get)\n\n
\n

У загрузки не может быть статуса 2.

\n
\n" + - name: Списки товаров + - name: Цены + - name: Промокоды и скидки + - name: Информация для формирования поставок + description: Получение информации для формирования поставок на склады Wildberries + - name: Сборочные задания + description: | + Публичный API Marketplace создано для синхронизации данных между серверами Wildberries и серверами продавцов. +
Вы загружаете данные на свои носители, работаете с ними на своих мощностях и синхронизируетесь с нашими серверами по мере необходимости. +
+
Ограничения по запросам: +
Метод PATCH `api/v3/supplies/{supplyId}/orders/{orderId}` "Добавить сборочное задание к поставке" - 1 000 запросов в минуту. +
Методы +
PUT `/api/v3/orders/{orderId}/meta/uin` "Закрепить за сборочным заданием УИН" +
PUT `/api/v3/orders/{orderId}/meta/imei` "Закрепить за сборочным заданием IMEI" +
PUT `/api/v3/orders/{orderId}/meta/gtin` "Закрепить за сборочным заданием GTIN" +
PUT `/api/v3/orders/{orderId}/meta/sgtin` "Закрепить за сборочным заданием КиЗ (маркировку Честного знака)" +
- суммарно 1 000 запросов в минуту. +
Остальные методы - 300 запросов в минуту, в целом. +
`Не допускается использование API Marketplace в качестве внешней базы данных.` + +
+
Словарь сокращений:
+
ПВЗ - пункт выдачи заказов
+
КИЗ - контрольный идентификационный знак
+
ИС "МДЛП" - информационная система мониторинга движения лекарственных препаратов
+
СЦ - сортировочный центр
+
+ + + Описание основных ошибок в Marketplace: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
КодОписание
InternalServerErrorВнутренняя ошибка сервера
UnauthorizedПользователь не авторизован
AccessDeniedДоступ запрещён
IncorrectRequestBodyНекорректное тело запроса
IncorrectRequestПереданы некорректные данные
NotFoundНе найдено
UploadDataLimitПревышен лимит загружаемых данных
SubjectDBSRestrictionКатегория товара недоступна для продажи по схеме 'Везу на склад Wildberries'
SubjectFBSRestrictionКатегория товара недоступна для продажи по схеме 'Везу самостоятельно до покупателя'
CargoWarehouseRestrictionВыбранный склад не предназначен для крупногабаритных товаров. Добавьте их на соответствующий склад
IncorrectParameterПередан некорректный параметр
SupplyHasOrdersНе удалось обработать поставку. Убедитесь, что за ней не осталось закреплённых сборочных заданий
SupplyHasZeroOrdersНе удалось обработать поставку. Убедитесь, что за ней закреплено хотя бы одно сборочное задание
SupplyHasEmptyTrbxВ поставке есть пустые короба. Удалите их или вернитесь к распределению товаров
FailedToAddSupplyOrderНе удалось закрепить сборочное задание за поставкой. Убедитесь, что сборочное задание и поставка удовлетворяют всем необходимым требованиям
StatusChangeNotAllowedЗадание перейдёт в завершенные после сканирования на ПВЗ
StatusMismatchНесоответствие статусов, проверьте их правильность
SupplyNotClosedПоставка не передана в доставку
PassValidationError*причина*
SupplierBannedПользователь заблокирован: *причина*
+ - name: Поставки + description: | + Порядок работы: + +
1. Создайте новую поставку с помощью метода **POST** */api/v3/supplies*. В ответ вернется идентификатор созданной поставки в формате "WB-GI-1234567". +
2. В текущую новую поставку нужно добавить сборочные задания, которые вы повезёте на склад или ПВЗ, методом **PATCH** */api/v3/supplies/{supplyId}/orders/{orderId}*. Обратите внимание, что при добавлении сборочных заданий к поставке они будут переведены в статус confirm ("На сборке"). +
`Примечание`: пункты 3 - 8 обязательны к выполнению при доставке поставки на ПВЗ. +
3. В поставке создайте короб методом **POST** */api/v3/supplies/{supplyId}/trbx*. +
4. Добавьте заказы в короб методом **PATCH** */api/v3/supplies/{supplyId}/trbx/{trbxId}*. +
5. Список коробов с заказами можно получить методом **GET** */api/v3/supplies/{supplyId}/trbx*. +
6. Получите стикеры коробов методом **POST** */api/v3/supplies/{supplyId}/trbx/stickers*, распечатайте и наклейте стикеры на короба согласно распределённым в них заказам. +
7. Вы можете удалить короба из поставки методом **DELETE** */api/v3/supplies/{supplyId}/trbx*. Обратите внимание, что удалить короба из поставки можно, только пока поставка находится на сборке. +
8. Вы можете удалить заказы из короба методом **DELETE** */api/v3/supplies/{supplyId}/trbx/{trbxId}/orders/{orderId}*. Обратите внимание, что удалить заказы из короба можно, только пока поставка находится на сборке. +
9. После того как поставка будет укомплектована нужными сборочными заданиями, необходимо ее передать в доставку с помощью метода **PATCH** */api/v3/supplies/{supplyId}/deliver*. Обратите внимание, что при передаче сборочных заданий в доставку они будут автоматически собраны, т.е. переведены в статус complete ("В доставке"). +
10. Список сборочных заданий, добавленных к поставке, можно получить методом **GET** */api/v3/supplies/{supplyId}/orders*. +
11. Все поставки, имеющиеся у продавца, можно получить методом **GET** */api/v3/supplies*. +
12. Детализацию конкретной поставки можно получить методом **GET** */api/v3/supplies/{supplyId}*. +
13. С помощью метода **DELETE** */api/v3/supplies/{supplyId}* можно удалить поставку при условии, что она активна и за ней не закреплено ни одно сборочное задание. +
14. Если поставка была отсканирована в пункте приёмки, но при этом в ней имеются ещё неотсканированные товары, то спустя определенное время необходимо доставить их повторно. Все сборочные задания, требующие повторной отгрузки на данный момент, можно получить с помощью метода GET /api/v3/supplies/orders/reshipment. При помощи метода PATCH /api/v3/supplies/{id поставки}/orders/{id сборочного задания} данные сборочные задания можно перевести в другую активную поставку (сборочное задание также будет переведено в статус confirm ("На сборке")). +
15. Метод **PATCH** */api/v3/supplies/{supplyId}/orders/{orderId}* также позволяет перемещать сборочные задания между активными поставками. Обратите внимание, что нельзя перемещать сборочное задание из уже закрытой поставки, только если оно не требует повторной отгрузки. +
16. QR-код поставки можно получить методом **GET** */api/v3/supplies/{supplyId}/barcode* в формате svg, zpl или png. Доступно только после передачи поставки в доставку. + - name: Остатки + description: Допускается максимум 300 запросов в минуту на методы Marketplace в целом + - name: Склады + description: Допускается максимум 300 запросов в минуту на методы Marketplace в целом + - name: Пропуска + description: Допускается максимум 300 запросов в минуту на методы Marketplace в целом + - name: Статистика + description: | + Методы статистики
Лимит по запросам: один запрос одного метода в минуту.

Инструкция: Сохранение статистики в Excel + - name: Воронка продаж + description: | + **Таймзоны** + + Формат IANA, актуальный список можно посмотреть [здесь](https://nodatime.org/TimeZones). + - name: Товары с обязательной маркировкой + - name: Платное хранение + description: | + Чтобы получить отчёт: + + 1. Создайте его с помощью метода [Создать отчёт](./#tag/Otchyot-o-platnom-hranenii/paths/~1api~1v1~1delayed-gen~1paid_storage/get). + 2. Дождитесь, когда отчёт будет готов. Готовность можно узнать с помощью метода [Проверить статус](./#tag/Otchyot-o-platnom-hranenii/paths/~1api~1v1~1%7Btask_type%7D~1tasks~1%7Btask_id%7D~1status/get). Готовый отчёт хранится 2 часа, после его нельзя будет получить. + 3. Загрузите отчёт с помощью метода [Получить отчёт](./#tag/Otchyot-o-platnom-hranenii/paths/~1api~1v1~1%7Btask_type%7D~1tasks~1%7Btask_id%7D~1download/get). + - name: Воронка продаж (Джем) + description: | + Вы можете использовать эти методы только с подпиской [Джем](https://seller.wildberries.ru/dynamic-product-categories/jam). + + Чтобы получить отчёт: + 1. Сгенерируйте его с помощью метода метода [Создать отчёт](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads/post). + 2. Дождитесь, когда отчёт будет готов. Готовность можно узнать с помощью метода [Получить список отчётов](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads/get). Готовый отчёт хранится 48 часов, потом его нельзя будет получить.
+ Если вы получили статус FAILED, [сгенерируйте отчёт повторно](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads~1retry/post) + 3. [Получите отчёт](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads~1file~1%7BdownloadId%7D/get). + + Можно получить отчёт максимум за год. + + + Максимальное количество генерируемых отчётов в сутки — 20. + - name: Отчёты по удержаниям + - name: Продвижение + - name: Ставки + - name: Активность кампании + - name: Финансы + - name: Управление общими параметрами кампании + - name: "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + - name: Управление параметрами автоматических кампаний + - name: Словари + - name: Статистика + - name: Медиа + description: Публичный API для работы с медиакампаниями + - name: Рекомендации + description: | + Взаимодействие с сервисом для формирования выдачи карусели "с этим товаром рекомендуют" в карточке товара и дополнения карусели продавцами на портале продавцов. + - name: Вопросы + - name: Отзывы + - name: Шаблоны для вопросов и отзывов + description: | + Данный раздел содержит методы, которые позволяют создавать, получать, редактировать и удалять шаблоны ответов на вопросы и отзывы.

`Важно!` Дифференциация большей части ответов по статус-коду не предусмотрена.
На некорректный запрос Вы получите ответ со статус-кодом 200 и описанием ошибки. +paths: + /content/v2/cards/upload: + servers: + - url: https://suppliers-api.wildberries.ru + post: + tags: + - Загрузка + summary: Создание карточки товара + description: "Создание карточки товара происходит асинхронно, при отправке запроса на создание карточки ваш запрос становится в очередь на создание.\n\n\n**Внимание**. Карточка считается созданной, если создалась хотя бы одна номенклатура в ней. Если во время обработки запроса в очереди выявляются ошибки, то номенклатура считается ошибочной.\n\n\nКак создать карточку:\n\n 1. Получите список всех категорий с помощью метода `Родительские категории товаров`\n 2. Получите список доступных предметов (подкатегорий) с помощью метода `Список предметов (подкатегорий)`\n 3. Получите характеристики, которые можно задавать в этом предмете (подкатегории), с помощью метода `Характеристики предмета (подкатегории)`. Для характеристик Цвет, Страна производства, Сезон, Ставка НДС, ТНВЭД используйте значения из раздела `Конфигуратор`.\n 4. Отправьте запрос. Если ответ Успешно (200), но какие-то карточки не\_создались, проверьте ошибки с\_помощью метода `Список несозданных номенклатур (НМ) с ошибками`.\n \n\nВ одном запросе можно создать максимум 100\_карточек\_(`imtID`) и по\_30 номенклатур\_(`nmID`) в\_каждой. Максимальный размер запроса 10 Мб.\n\nГабариты товаров можно указать только в **сантиметрах**.\n" + requestBody: + content: + application/json: + schema: + type: array + items: + type: object + required: + - subjectID + - variants + properties: + subjectID: + type: integer + description: ID предмета + variants: + description: Массив вариантов товара. В каждой КТ может быть не более 30 вариантов (НМ) + type: array + items: + type: object + required: + - vendorCode + properties: + brand: + type: string + description: Бренд + title: + type: string + description: Наименование товара + description: + type: string + description: | + Описание товара. Максимальное количество символов зависит от категории товара. Стандарт — 2000, минимум — 1000, максимум — 5000.
+ Подробно о правилах описания в **Правилах заполнения карточки товара** в разделе [Инструкции](https://seller.wildberries.ru/training) на портале продавцов. + vendorCode: + type: string + description: Артикул продавца + dimensions: + description: | + Габариты упаковки товара. Указывать в **сантиметрах** для любого товара. +
+ Если не указать структуру dimensions в запросе, то она сгенерируется системой автоматически с нулевыми значениями длины, ширины, высоты + type: object + properties: + length: + type: integer + description: Длина, см + width: + type: integer + description: Ширина, см + height: + type: integer + description: Высота, см + sizes: + type: array + description: | + Массив с размерами.
+ Если для размерного товара (обувь, одежда и др.) не указать этот массив, то системой в карточке он будет сгенерирован автоматически с `techSize` = "A" и `wbSize` = "1" и баркодом. + items: + type: object + properties: + techSize: + type: string + description: Размер товара (XL, 45 и др.) + wbSize: + type: string + description: Российский размер товара + price: + type: integer + description: Цена товара + skus: + type: array + items: + type: string + description: Баркод. Если не указать, сгенерируется системой автоматически. + characteristics: + type: array + description: Массив характеристик товара + items: + type: object + required: + - id + - value + properties: + id: + type: integer + description: Идентификатор характеристики + value: + description: Значение характеристики. Тип значения зависит от типа характеристики + examples: + creatingOneCard: + $ref: '#/components/examples/creatingOneCard' + creatingMergedCards: + $ref: '#/components/examples/creatingMergedCards' + creatingGroupOfIndividualCards: + $ref: '#/components/examples/creatingGroupOfIndividualCards' + responses: + '200': + description: Успех + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + examples: + InvalidRequestFormatContent: + $ref: '#/components/examples/InvalidRequestFormatContent' + CardCreatedWithoutVendorCode: + $ref: '#/components/examples/CardCreatedWithoutVendorCode' + CardsVendorCodeUsedInOtherCards: + $ref: '#/components/examples/CardsVendorCodeUsedInOtherCards' + ThisCategoryDoesNotExist: + $ref: '#/components/examples/ThisCategoryDoesNotExist' + '413': + description: Превышен лимит объёма данных в запросе + content: + application/json: + schema: + type: string + examples: + BodySizeExceedsTheGivenLimit: + $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' + /content/v2/cards/update: + servers: + - url: https://suppliers-api.wildberries.ru + post: + tags: + - Загрузка + summary: Редактирование КТ + description: "Обновляет карточку товара. Данные для обновления можно получить с помощью метода [Список номенклатур (НМ)](./#tag/Prosmotr/paths/~1content~1v2~1get~1cards~1list/post)\n\nНельзя редактировать или удалить баркоды, но можно добавить баркод к\_существующему. Параметры `photos`, `video` и `tags` передавать не обязательно, их нельзя редактировать или удалять в этом методе.\n\nЕсли ответ Успешно (200), но какие-то карточки не\_изменились, проверьте ошибки с\_помощью метода `Список несозданных номенклатур (НМ) с ошибками`.\n\nВ одном запросе можно отредактировать максимум 3000\_номенклатур\_(`nmID`). Максимальный размер запроса 10 Мб.\n\nГабариты товаров можно указать только в **сантиметрах**.\n" + requestBody: + content: + application/json: + schema: + type: array + items: + type: object + required: + - nmID + - vendorCode + - sizes + properties: + nmID: + type: integer + description: Артикул WB + vendorCode: + type: string + description: Артикул продавца + brand: + type: string + description: Бренд + title: + type: string + description: Наименование товара + description: + type: string + description: | + Описание товара. Максимальное количество символов зависит от категории товара. Стандарт — 2000, минимум — 1000, максимум — 5000.
+ Подробно о правилах описания в **Правилах заполнения карточки товара** в разделе [Инструкции](https://seller.wildberries.ru/training) на портале продавцов. + dimensions: + description: | + Габариты упаковки товара. Указывать в **сантиметрах** для любого товара. + type: object + properties: + length: + type: integer + description: Длина, см + width: + type: integer + description: Ширина, см + height: + type: integer + description: Высота, см + characteristics: + description: Характеристики товара + type: array + items: + type: object + properties: + id: + type: integer + description: ID характеристики + value: + description: Значение характеристики. Тип значения зависит от типа характеристики. + sizes: + type: array + description: | + Массив размеров артикула.
Для безразмерного товара все равно нужно передавать данный массив без параметров (wbSize и techSize), но с баркодом. + items: + type: object + properties: + chrtID: + type: integer + description: | + Числовой идентификатор размера для данного артикула Wildberries + Обязателен к заполнению для существующих размеров. + Для добавляемых размеров не указывается. + techSize: + type: string + description: Размер товара (XL, S, 45 и др.) + wbSize: + type: string + description: Российский размер товара + skus: + type: array + items: + type: string + description: Баркод + example: + - nmID: 11111111 + vendorCode: wbiz72wmro + brand: '' + title: Свитер женский оверсайз с горлом + description: '12345' + dimensions: + length: 0 + width: 0 + height: 0 + characteristics: + - id: 14177450 + value: + - хлопок 50% акрил 50% + - id: 50 + value: + - свободный крой + sizes: + - chrtID: 12345678 + techSize: ONE SIZE + wbSize: 78-90 + skus: + - '123487653460134' + responses: + '200': + description: Карточка обновлена + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + '413': + description: Превышен лимит объёма данных в запросе + content: + application/json: + schema: + type: string + examples: + BodySizeExceedsTheGivenLimit: + $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' + /content/v2/cards/upload/add: + servers: + - url: https://suppliers-api.wildberries.ru + post: + tags: + - Загрузка + summary: Добавление НМ к КТ + description: | + Метод позволяет добавить к карточке товара новую номенклатуру. new
+ Добавление НМ к КТ происходит асинхронно, после отправки запрос становится в очередь на обработку.
+ `Важно!` Если после успешной отправки запроса номенклатура не создалась, то необходимо проверить раздел "Список несозданных НМ с ошибками".
+ Для того чтобы убрать НМ из ошибочных, необходимо повторно сделать запрос с исправленными ошибками.
+ Максимальный размер запроса 10 Мб. + + Габариты товаров можно указать только в **сантиметрах**. + requestBody: + content: + application/json: + schema: + type: object + properties: + imtID: + type: integer + description: imtID КТ, к которой добавляется НМ + cardsToAdd: + description: Структура добавляемой НМ + type: array + items: + type: object + required: + - vendorCode + properties: + brand: + type: string + description: Бренд + vendorCode: + type: string + description: Артикул продавца + title: + type: string + description: Наименование товара + description: + type: string + description: | + Описание товара. Максимальное количество символов зависит от категории товара. Стандарт — 2000, минимум — 1000, максимум — 5000.
+ Подробно о правилах описания в **Правилах заполнения карточки товара** в разделе [Инструкции](https://seller.wildberries.ru/training) на портале продавцов. + dimensions: + description: | + Габариты упаковки товара. Указывать в **сантиметрах** для любого товара. +
+ Если не указать структуру dimensions в запросе, то она сгенерируется системой автоматически с нулевыми значениями длины, ширины, высоты + type: object + properties: + length: + type: integer + description: Длина, см + width: + type: integer + description: Ширина, см + height: + type: integer + description: Высота, см + characteristics: + description: Характеристики товара + type: array + items: + type: object + properties: + id: + type: integer + description: ID характеристики + value: + description: Значение характеристики. Тип значения зависит от типа характеристики + sizes: + type: array + description: | + Массив с размерами.
+ Если для размерного товара (обувь, одежда и др.) не указать этот массив, то системой в карточке он будет сгенерирован автоматически с `techSize` = "A" и `wbSize` = "1" и баркодом. + items: + type: object + properties: + techSize: + type: string + description: Размер товара (XL, 42 и др.) + wbSize: + type: string + description: Российский размер товара + price: + type: integer + description: Цена товара + skus: + description: Баркод + type: array + items: + type: string + example: + imtID: 987654321 + cardsToAdd: + - vendorCode: myVariant1 + title: Наименование товара + description: Описание товара + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Russian flag + - id: 25471 + value: 1300 + - id: 14177449 + value: + - blue + sizes: + - skus: + - '12345678' + - vendorCode: myVariant2 + title: Наименование товара + description: Описание товаров + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Russian flag + - id: 25471 + value: 1300 + - id: 14177449 + value: + - blue + sizes: + - skus: + - '222222222222' + responses: + '200': + description: Успех + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + examples: + InvalidRequestFormatContent: + $ref: '#/components/examples/InvalidRequestFormatContent' + CardCreatedWithoutVendorCode: + $ref: '#/components/examples/CardCreatedWithoutVendorCode' + CardsVendorCodeUsedInOtherCards: + $ref: '#/components/examples/CardsVendorCodeUsedInOtherCards' + ThisCategoryDoesNotExist: + $ref: '#/components/examples/ThisCategoryDoesNotExist' + '413': + description: Превышен лимит объёма данных в запросе + content: + application/json: + schema: + type: string + examples: + BodySizeExceedsTheGivenLimit: + $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' + /content/v2/cards/moveNm: + servers: + - url: https://suppliers-api.wildberries.ru + post: + tags: + - Загрузка + summary: Объединение / Разъединение НМ + description: | + Метод позволяет объединять номенклатуры (`nmID`) под одним `imtID` и разъединять их.
+ + Для объединения НМ необходимо отправить запрос со списком НМ с заполненным параметром `targetIMT` в теле запроса. + При этом все НМ объединятся под `imtID` указанном в `targetIMT`.
+
+ Чтобы отсоединить НМ от карточки, необходимо передать эту НМ без параметра `targetIMT` в теле запроса.
+ При этом для передаваемой НМ создается новый `imtID`.
+ Если в запросе на разъединение передается несколько НМ, то все они автоматически объединятся под одним новым `imtID`.
+ Чтобы присвоить каждой НМ уникальный `imtID` необходимо передавать по одной НМ за запрос. + Для НМ, не участвующих в запросе, никаких изменений не происходит.
+ Максимальный размер запроса 10 Мб.
+
+ `ВАЖНО:` Объединить можно только номенклатуры с одинаковыми предметами.
+ `ВАЖНО:` В одной КТ (под одним `imtID`) не может быть больше 30 номенклатур (`nmID`). + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/requestMoveNmsImtConn' + - $ref: '#/components/schemas/requestMoveNmsImtDisconn' + responses: + '200': + description: Успех + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Некорректный формат запроса + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseContentError1' + - $ref: '#/components/schemas/responseCardCreate' + - $ref: '#/components/schemas/responseIncorrectDate' + examples: + responseExceededLimit: + $ref: '#/components/examples/responseExceededLimit' + responseCombining: + $ref: '#/components/examples/responseCombining' + responseIncorrectRequestFormat: + $ref: '#/components/examples/responseIncorrectRequestFormat' + responseNonExistentNmId: + $ref: '#/components/examples/responseNonExistentNmId' + responseNonExistentImt: + $ref: '#/components/examples/responseNonExistentImt' + responseCardCreate1: + $ref: '#/components/examples/responseCardCreate1' + responseDuplicateRequests: + $ref: '#/components/examples/responseDuplicateRequests' + responseAllCardsInSameGroup: + $ref: '#/components/examples/responseAllCardsInSameGroup' + responseIncorrectBeginDate: + $ref: '#/components/examples/responseIncorrectBeginDate' + responseIncorrectEndDate: + $ref: '#/components/examples/responseIncorrectEndDate' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + '413': + description: Превышен лимит объёма данных в запросе + content: + application/json: + schema: + type: string + examples: + BodySizeExceedsTheGivenLimit: + $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + /content/v2/barcodes: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Генерация баркодов + description: Метод позволяет сгенерировать массив уникальных баркодов для создания размера НМ в КТ. + tags: + - Загрузка + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + count: + description: Кол-во баркодов которые надо сгенерировать, максимальное доступное количество баркодов для генерации - `5 000` + type: integer + example: 100 + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + description: Массив сгенерированных баркодов + type: array + items: + type: string + example: '5032781145187' + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/get/cards/list: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Просмотр + summary: Список номенклатур (НМ) + description: | + Метод позволяет получить список созданных НМ с фильтрацией по разным параметрам, пагинацией и сортировкой. +
*Важно*. Карточки, находящиеся в корзине, в ответе метода не выдаются.
Получить такие карточки можно только методом "Список НМ, находящихся в корзине".

Порядок работы с `get/cards/list`:
Чтобы получить полный список номенклатур, если их больше 100, необходимо воспользоваться пагинацией. +
    +
  1. Сделать первый запрос (все указанные ниже параметры обязательны):
    +
    +                {
    +                  "settings": {                      
    +                    "cursor": {
    +                      "limit": 100
    +                    },
    +                    "filter": {
    +                      "withPhoto": -1
    +                    }
    +                  }
    +                }
    +
  2. +
  3. Пройти в конец полученного списка номенклатур, скопировать из cursor две строки: +
      +
    • "updatedAt": "***",
    • +
    • "nmID": ***,
    • +
    +
  4. Вставить скопированные строки в cursor запроса, повторить вызов метода.
  5. +
  6. Повторять пункты 2 и 3, пока total в ответе не станет меньше чем limit в запросе. +
    Это будет означать, что Вы получили все карточки. +
+
По желанию можно добавить поиск и сортировку. См описание в Request Body schema +
В Request samples представлен пример запроса со всеми возможными параметрами. + parameters: + - name: locale + in: query + schema: + type: string + example: ru + description: "Язык для перевода полей ответа `name`, `value` и `object`: `ru` - русский, `en` - английский, `zh` - китайский.\n\nНе\_используется в\_песочнице. \n" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + settings: + type: object + description: Настройки + properties: + sort: + description: Параметр сортировки + type: object + properties: + ascending: + type: boolean + description: Сортировать по полю **updatedAt** (`false` - по убыванию, `true` - по возрастанию) + filter: + description: Параметры фильтрации + type: object + properties: + withPhoto: + type: integer + description: "Фильтр по\_фото:\n \n * `0`\_— только карточки без фото\n * `1`\_— только карточки с\_фото\n * `-1`\_— все карточки товара\n" + textSearch: + type: string + description: Поиск по артикулу продавца, артикулу WB, баркоду + tagIDs: + type: array + description: Поиск по ID тегов + items: + type: integer + allowedCategoriesOnly: + description: "Фильтр по категории. `true` - только разрешённые, `false` - все. Не\_используется в\_песочнице." + type: boolean + objectIDs: + type: array + description: Поиск по id предметов + items: + type: integer + brands: + type: array + description: Поиск по брендам + items: + type: string + imtID: + description: Поиск по идентификатору КТ + type: integer + cursor: + description: | + Курсор + type: object + properties: + limit: + type: integer + description: Сколько КТ выдать в ответе. + example: + settings: + sort: + ascending: false + filter: + textSearch: '' + allowedCategoriesOnly: true + tagIDs: [] + objectIDs: [] + brands: [] + imtID: 0 + withPhoto: -1 + cursor: + updatedAt: '' + nmID: 0 + limit: 11 + responses: + '200': + description: Ответ + content: + application/json: + schema: + type: object + properties: + cards: + type: array + description: Список КТ + items: + type: object + properties: + nmID: + type: integer + description: Артикул WB + imtID: + type: integer + description: Идентификатор КТ.
Артикулы WB из одной КТ будут иметь одинаковый imtID + nmUUID: + type: string + format: uuid + description: Внутренний технический идентификатор товара + subjectID: + type: integer + description: Идентификатор предмета + vendorCode: + type: string + description: Артикул продавца + subjectName: + type: string + description: Название предмета + brand: + type: string + description: Бренд + title: + type: string + description: Наименование товара + photos: + type: array + description: Массив фото + items: + type: object + properties: + big: + description: URL фото `900х1200` + type: string + c246x328: + description: URL фото `248х328` + type: string + c516x688: + description: URL фото `516х688` + type: string + square: + description: URL фото `600х600` + type: string + tm: + description: URL фото `75х100` + type: string + video: + type: string + description: URL видео + dimensions: + description: Габариты упаковки товара, см + type: object + properties: + length: + type: integer + description: Длина, см + width: + type: integer + description: Ширина, см + height: + type: integer + description: Высота, см + characteristics: + type: array + description: Характеристики + items: + type: object + properties: + id: + type: integer + description: Идентификатор характеристики + name: + type: string + description: Название характеристики + value: + description: Значение характеристики. Тип значения зависит от типа характеристики + sizes: + type: array + description: Размеры товара + items: + type: object + properties: + chrtID: + type: integer + description: Числовой идентификатор размера для данного артикула WB + techSize: + type: string + description: Размер товара (А, XXL, 57 и др.) + wbSize: + type: string + description: Российский размер товара + skus: + type: array + description: Баркод товара + items: + type: string + example: 12345Ejf5 + tags: + description: Теги + type: array + items: + type: object + properties: + id: + type: integer + description: Идентификатор тега + name: + type: string + description: Название тега + color: + type: string + description: | + Цвет тега.
Доступные цвета:
D1CFD7 - серый
FEE0E0 - красный
ECDAFF - фиолетовый
E4EAFF - синий
DEF1DD - зеленый
FFECC7 - желтый
+ createdAt: + type: string + description: Дата создания + updatedAt: + type: string + description: Дата изменения + cursor: + type: object + description: Пагинатор + properties: + updatedAt: + type: string + description: Дата с которой надо запрашивать следующий список КТ + nmID: + type: integer + description: Номер Артикула WB с которой надо запрашивать следующий список КТ + total: + type: integer + description: Кол-во возвращенных КТ + example: + cards: + - nmID: 12345678 + imtID: 123654789 + nmUUID: 01bda0b1-5c0b-736c-b2be-d0a6543e9be + subjectID: 7771 + subjectName: AKF системы + vendorCode: wb7f6mumjr1 + brand: '' + title: '' + description: '' + dimensions: + length: 0 + width: 0 + height: 0 + characteristics: + - id: 14177449 + name: Цвет + value: + - красно-сиреневый + sizes: + - chrtID: 316399238 + techSize: '0' + skus: + - '987456321654' + tags: + - id: 592569 + name: Популярный + color: D1CFD7 + createdAt: '2023-12-06T11:17:00.96577Z' + updatedAt: '2023-12-06T11:17:00.96577Z' + cursor: + updatedAt: '2023-12-06T11:17:00.96577Z' + nmID: 123654123 + total: 1 + '400': + description: Неверная форма запроса. + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен. + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/cards/error/list: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Список несозданных номенклатур (НМ) с ошибками + description: | + Метод позволяет получить список НМ и список ошибок которые произошли во время создания КТ.
`ВАЖНО`: Для того чтобы убрать НМ из ошибочных, надо повторно сделать запрос с исправленными ошибками на создание КТ. + tags: + - Просмотр + parameters: + - name: locale + in: query + schema: + type: string + example: en + description: "\nПараметр выбора языка значений полей ответа (для которых предусмотрена мультиязычность). new\n\nНе\_используется в\_песочнице.\n" + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + object: + description: Категория для который создавалось КТ с данной НМ + type: string + example: Блузки + vendorCode: + description: Артикул продавца + type: string + example: '6000000001' + updateAt: + description: Дата и время запроса на создание КТ с данным НМ + type: string + example: '2022-06-15T14:37:13Z' + errors: + description: Список ошибок из-за которых не обработался запрос на создание КТ с данным НМ + type: array + items: + type: string + example: Поля Рос. размер, Размер обязательны для заполнения + objectID: + description: Идентификатор предмета + type: integer + example: 41 + error: + description: Флаг ошибки. + type: boolean + example: false + errorText: + description: Описание ошибки. + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки. + type: string + example: '' + '400': + description: Неверная форма запроса. + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен. + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/cards/limits: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Лимиты по КТ + description: | + Метод позволяет получить отдельно бесплатные и платные лимиты продавца на создание карточек товаров.
Формула для получения количества карточек, которые можно создать: (`freeLimits` + `paidLimits`) - Количество созданных карточек.
Созданными считаются все карточки, которые можно получить методами "Список НМ" и "Список НМ, находящихся в корзине". + tags: + - Просмотр + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + freeLimits: + description: Количество бесплатных лимитов + type: integer + paidLimits: + description: Количество оплаченных лимитов + type: integer + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: string + nullable: true + example: + data: + freeLimits: 1500 + paidLimits: 10 + error: false + errorText: '' + additionalErrors: null + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/object/parent/all: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Родительские категории товаров + description: С помощью данного метода можно получить список всех родительских категорий товаров. + tags: + - Конфигуратор + parameters: + - name: locale + in: query + description: "Параметр выбора языка (ru, en, zh) значений поля name. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + items: + type: object + properties: + name: + description: Название категории + type: string + example: Электроника + id: + description: Идентификатор родительской категории + type: integer + example: 479 + isVisible: + description: Виден на сайте + type: boolean + example: true + error: + description: Флаг наличия ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/object/all: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Список предметов (подкатегорий) + description: С помощью данного метода можно получить список всех доступных предметов, родительских категорий предметов, и их идентификаторов. new + tags: + - Конфигуратор + parameters: + - name: name + in: query + schema: + type: string + example: Носки + description: Поиск по наименованию предмета (Носки), поиск работает по подстроке, искать можно на любом из поддерживаемых языков. + - name: limit + in: query + schema: + type: integer + example: 1000 + description: "Количество подкатегорий (предметов), максимум 1\_000" + - name: locale + in: query + schema: + type: string + example: en + description: "Язык полей ответа (ru, en, zh). Не\_используется в\_песочнице" + - name: offset + in: query + schema: + type: integer + example: 5000 + description: Номер позиции, с которой необходимо получить ответ + - name: parentID + in: query + schema: + type: integer + example: 1000 + description: Идентификатор родительской категории предмета + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Подкатегории (предметы) + items: + type: object + properties: + subjectID: + type: integer + description: Идентификатор предмета + parentID: + type: integer + description: Идентификатор родительской категории + subjectName: + type: string + description: Название предмета + parentName: + type: string + description: Название родительской категории + error: + type: boolean + description: Флаг наличия ошибки + errorText: + type: string + description: Текст ошибки + additionalErrors: + description: Дополнительные ошибки + type: string + example: + data: + - subjectID: 2560 + parentID: 479 + subjectName: 3D очки + parentName: Электроника + - subjectID: 1152 + parentID: 858 + subjectName: 3D-принтеры + parentName: Оргтехника + error: false + errorText: '' + additionalErrors: null + /content/v2/object/charcs/{subjectId}: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Характеристики предмета (подкатегории) + description: Получение списка характеристик предмета по его ID. new + tags: + - Конфигуратор + parameters: + - name: subjectId + in: path + required: true + description: Идентификатор предмета + schema: + type: integer + example: 105 + - name: locale + in: query + description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Данные + items: + type: object + properties: + charcID: + type: integer + description: Идентификатор характеристики + subjectName: + type: string + description: Название предмета + subjectID: + type: integer + description: Идентификатор предмета + name: + type: string + description: Название характеристики + required: + type: boolean + description: true - характеристику необходимо обязательно указать в КТ. false - характеристику не обязательно указывать + unitName: + type: string + description: Единица измерения + maxCount: + type: integer + description: | + Максимальное кол-во значений, которое можно присвоить данной характеристике. Если 0, то нет ограничения. + popular: + description: Характеристика популярна у пользователей (true - да, false - нет) + type: boolean + charcType: + type: integer + description: Тип характеристики (1 и 0 - строка или массив строк; 4 - число или массив чисел) + error: + type: boolean + description: Флаг наличия ошибки + errorText: + type: string + description: Текст ошибки + additionalErrors: + type: string + description: Дополнительные ошибки + example: + data: + - charcID: 54337 + subjectName: Кроссовки + subjectID: 105 + name: Размер + required: false + unitName: см + maxCount: 0 + popular: false + charcType: 4 + error: false + errorText: '' + additionalErrors: null + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/directory/colors: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Цвет + description: Получение значения характеристики цвет. + tags: + - Конфигуратор + parameters: + - name: locale + in: query + description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + items: + type: object + properties: + name: + description: Наименование цвета + type: string + example: персиковый мелок + parentName: + description: Наименование родительского цвета + type: string + example: оранжевый + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/directory/kinds: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Пол + description: Получение значения характеристики пол. + tags: + - Конфигуратор + parameters: + - name: locale + in: query + description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + description: Массив значений для хар-ки Пол + type: array + items: + type: string + example: Мужской + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/directory/countries: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Страна Производства + description: Получение значения характеристики Страна Производства. + tags: + - Конфигуратор + parameters: + - name: locale + in: query + description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + items: + type: object + properties: + name: + description: Значение характеристики Страны + type: string + example: Афганистан + fullName: + description: Полное название страны + type: string + example: Исламский Эмират Афганистан + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/directory/seasons: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Сезон + description: Получение значения характеристики Сезон. + tags: + - Конфигуратор + parameters: + - name: locale + in: query + description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + description: Массив значений для хар-ки Сезон + type: array + items: + type: string + example: демисезон + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/directory/tnved: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: ТНВЭД код + description: С помощью данного метода можно получить список ТНВЭД кодов по ID предмета и фильтру по ТНВЭД коду. new + tags: + - Конфигуратор + parameters: + - name: subjectID + in: query + required: true + description: Идентификатор предмета + schema: + type: integer + example: 105 + - name: search + in: query + description: Поиск по ТНВЭД-коду. Работает только в паре с subjectID + schema: + type: integer + example: 6106903000 + - name: locale + in: query + description: "Язык (`ru`, `en`, `zh`) для значений полей `subjectName`, `name`. Не\_используется в\_песочнице" + schema: + type: string + example: en + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + description: Данные + type: array + items: + type: object + properties: + tnved: + type: string + description: ТНВЭД-код + isKiz: + type: boolean + description: | + - `true` - код маркировки требуется + - `false` - код маркировки не требуется + error: + type: boolean + description: Флаг наличия ошибки + example: false + errorText: + type: string + description: Текст ошибки + additionalErrors: + type: string + description: Дополнительные ошибки + example: + data: + - tnved: '6106903000' + isKiz: true + error: false + errorText: '' + additionalErrors: null + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/directory/vat: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Ставка НДС + description: С помощью данного метода можно получить список значений для характеристики **Ставка НДС**. new + tags: + - Конфигуратор + parameters: + - name: locale + in: query + required: true + description: "Язык значения элементов `data` (`ru`, `en`, `zh`). Не\_используется в\_песочнице" + schema: + type: string + example: ru + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: string + error: + type: boolean + description: Флаг наличия ошибки + errorText: + type: string + description: Текст ошибки + additionalErrors: + type: string + description: Дополнительные ошибки + example: + data: + - '0' + - '10' + - '20' + - Без НДС + - '13' + error: false + errorText: '' + additionalErrors: null + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v3/media/save: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Изменить медиафайлы + description: "Изменяет набор медиафайлов для товара (номенклатуры).\n\n**Внимание**. Новые медиафайлы (`data`) полностью заменяют старые (`mediaFiles`). Чтобы добавить новые медиафайлы, укажите ссылки не\_только на\_них, но и на\_старые файлы. \n\n\nТребования к изображениям:\n\n\n * максимум изображений для одного товара (номенклатуры)\_— 30;\n * минимальное разрешение – 700\_×\_900 пикселей;\n * максимальный размер\_— 32\_Мб;\n * минимальное качество\_— 65%;\n * форматы\_— JPG, PNG, BMP, GIF (статичные), WebP.\n\n\nТребования к видео:\n\n\n * максимум 1\_видео для одного товара (номенклатуры).\n * максимальный размер\_— 50\_Мб;\n * форматы\_— MOV, MP4.\n\n\nЕсли хотя бы одно изображение в запросе не соответствует требованиям, то даже при успешном ответе (200) ни\_одно изображение не загрузится\n" + tags: + - Медиафайлы + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nmId: + description: Артикул Wildberries + type: integer + example: 213864079 + data: + description: "Ссылки на изображения в том порядке, в котором они будут на\_карточке товара" + type: array + items: + type: string + example: https://basket-stage-02.wb.ru/vol669/part66964/66964260/images/big/2.jpg + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + example: + data: {} + error: false + errorText: '' + additionalErrors: null + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '409': + description: Ошибка сохранения для части ссылок + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '422': + description: Отсутствие в запросе параметра nmId + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '429': + description: Слишком много запросов + content: + application/json: + schema: + type: string + examples: + RateLimit: + $ref: '#/components/examples/RateLimit' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + /content/v3/media/file: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Добавить медиафайлы + description: "Добавляет один медиафайл для товара (номенклатуры).\n\nТребования к изображениям:\n\n * максимум изображений для одного товара (номенклатуры)\_— 30;\n * минимальное разрешение – 700\_×\_900 пикселей;\n * максимальный размер\_— 32\_Мб;\n * минимальное качество\_— 65%;\n * форматы\_— JPG, PNG, BMP, GIF (статичные), WebP.\n\nТребования к видео:\n\n * максимум 1\_видео для одного товара (номенклатуры);\n * максимальный размер\_— 50\_Мб;\n * форматы\_— MOV, MP4.\n" + tags: + - Медиафайлы + parameters: + - name: X-Nm-Id + in: header + description: Артикул Wildberries + schema: + type: string + example: '213864079' + required: true + - name: X-Photo-Number + in: header + description: "Номер медиафайла на загрузку, начинается с\_`1`. При загрузке видео всегда указывайте `1`.\n\nЧтобы добавить изображение к уже загруженным, номер медиафайла должен быть больше количества уже загруженных медиафайлов.\n" + schema: + type: integer + example: 2 + required: true + requestBody: + required: true + content: + multipart/form-data: + schema: + type: object + properties: + uploadfile: + type: string + format: binary + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + example: + data: {} + error: false + errorText: '' + additionalErrors: null + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '429': + description: Слишком много запросов + content: + application/json: + schema: + type: string + examples: + RateLimit: + $ref: '#/components/examples/RateLimit' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + /content/v2/tags: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Список тегов + description: Метод позволяет получить список существующих тегов продавца. + tags: + - Теги + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + properties: + id: + description: Числовой идентификатор тега + type: integer + color: + description: Цвет тега + type: string + name: + description: Имя тега + type: string + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: string + example: '' + example: + data: + - id: 1 + color: D1CFD7 + name: Sale + error: false + errorText: '' + additionalErrors: '' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/tag: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Создание тега + description: | + Метод позволяет создать тег.
Завести можно 15 тегов.
Максимальная длина тега 15 символов. + tags: + - Теги + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + color: + description: | + Цвет тега.
Доступные цвета:
D1CFD7 - серый
FEE0E0 - красный
ECDAFF - фиолетовый
E4EAFF - синий
DEF1DD - зеленый
FFECC7 - желтый
+ type: string + example: D1CFD7 + name: + description: Имя тега + type: string + example: Sale + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError6' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseBodyContentError400' + - $ref: '#/components/schemas/responseContentError4' + - $ref: '#/components/schemas/responseContentError6' + examples: + responseBodyContentError400: + $ref: '#/components/examples/responseBodyContentError400' + responseBody400LenName: + $ref: '#/components/examples/responseBody400LenName' + responseBodyLimitTag: + $ref: '#/components/examples/responseBodyLimitTag' + responseBodyNameNotExist: + $ref: '#/components/examples/responseBodyNameNotExist' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/tag/{id}: + servers: + - url: https://suppliers-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + summary: Изменение тега + description: Метод позволяет изменять информацию о теге (имя и цвет). + tags: + - Теги + parameters: + - name: id + in: path + schema: + type: integer + example: 1 + description: Числовой идентификатор тега + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + color: + description: Цвет тега + type: string + example: D1CFD7 + name: + description: Имя тега + type: string + example: Sale + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseContentError6' + - $ref: '#/components/schemas/responseContentError4' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + responseNotFound200: + $ref: '#/components/examples/responseNotFound200' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseBodyContentError400' + - $ref: '#/components/schemas/responseContentError4' + examples: + responseBodyContentError400: + $ref: '#/components/examples/responseBodyContentError400' + responseBody400LenName: + $ref: '#/components/examples/responseBody400LenName' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + delete: + security: + - HeaderApiKey: [] + summary: Удаление тега + description: "Метод позволяет удалить тег\_\_\_" + tags: + - Теги + parameters: + - name: id + in: path + schema: + type: integer + example: 1 + description: Числовой идентификатор тега + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseContentError6' + - $ref: '#/components/schemas/responseContentError5' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + responseNotFound200Del: + $ref: '#/components/examples/responseNotFound200Del' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseBodyContentError400' + - $ref: '#/components/schemas/responseContentError5' + examples: + responseBodyContentError400: + $ref: '#/components/examples/responseBodyContentError400' + responseBodyTagNotExist: + $ref: '#/components/examples/responseBodyTagNotExist' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/tag/nomenclature/link: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Управление тегами в КТ + description: | + Метод позволяет добавить теги к КТ и снять их с КТ.
При снятии тега с КТ сам тег не удаляется.
К карточке можно добавить 15 тегов. + tags: + - Теги + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nmID: + description: Артикул WB + type: integer + tagsIDs: + description: | + Массив числовых идентификаторов тегов.
Что бы снять теги с КТ, необходимо передать пустой массив.
Чтобы добавить теги к уже имеющимся в КТ, необходимо в запросе передать новые теги и теги, которые уже есть в КТ. + type: array + items: + type: integer + description: Числовой идентификатор тега. + example: + nmID: 179891389 + tagsIDs: + - 123456 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError6' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError4' + examples: + IncorrectRequest4: + $ref: '#/components/examples/IncorrectRequest4' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + '500': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError6' + examples: + responseBodyError500: + $ref: '#/components/examples/responseBodyError500' + /content/v2/cards/delete/trash: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Перенос НМ в корзину + description: | + Метод позволяет перенести НМ в корзину. Перенос карточки в корзину не является удалением карточки. new
ВАЖНО: При переносе НМ в корзину, данная НМ выходит из КТ, то есть ей присваивается новый imtID.
Карточка товара удаляется автоматически, если лежит в корзине больше 30 дней.
Корзина зачищается от карточек, лежащих в ней более 30 дней, каждую ночь по Московскому времени. + tags: + - Корзина + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: object + properties: + nmIDs: + description: Артикул WB (max. 1000) + type: array + items: + type: integer + example: + nmIDs: + - 987654321 + - 123456789 + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/cards/recover: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Восстановление НМ из корзины + description: | + Метод позволяет восстановить НМ из корзины. new
ВАЖНО: При восстановлении НМ из корзины она не возвращается в КТ в которой была до переноса в корзину, то есть imtID остается тот же, что и был у НМ в корзине. + tags: + - Корзина + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: object + properties: + nmIDs: + description: Артикул WB (max. 1000) + type: integer + example: + nmIDs: + - 123456789 + - 987654321 + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /content/v2/get/cards/trash: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Список НМ, находящихся в корзине + description: | + Метод позволяет получить список НМ, находящихся в корзине.

Порядок работы.
Чтобы получить полный список номенклатур, если их больше 100, необходимо воспользоваться пагинацией. +
    +
  1. Сделать первый запрос (все указанные ниже параметры обязательны):
    +
    +                {
    +                  "settings": {                      
    +                    "cursor": {
    +                      "limit": 100
    +                    }
    +                  }
    +                }
    +
  2. +
  3. Пройти в конец полученного списка номенклатур, скопировать из cursor две строки: +
      +
    • "trashedAt": "***",
    • +
    • "nmID": ***,
    • +
    +
  4. Вставить скопированные строки в cursor запроса, повторить вызов метода.
  5. +
  6. Повторять пункты 2 и 3, пока total в ответе не станет меньше чем limit в запросе. +
    Это будет означать, что Вы получили все карточки. +
+
По желанию можно добавить поиск и сортировку. См описание в Request Body schema +
В Request samples представлен пример запроса со всеми возможными параметрами. + tags: + - Корзина + parameters: + - name: locale + in: query + schema: + type: string + enum: + - ru + - en + - zh + description: "Язык полей ответа `name`, `value` и `object`: `ru`, `en`, `zh`.\n\nНе\_используется в\_песочнице\n" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + settings: + type: object + description: Настройки + properties: + sort: + description: Параметр сортировки + type: object + properties: + ascending: + type: boolean + description: Сортировать по `trashedAt` (`false` - по убыванию, `true` - по возрастанию) + cursor: + description: Курсор + type: object + properties: + limit: + type: integer + description: Сколько КТ выдать в ответе + filter: + description: Параметры фильтрации + type: object + properties: + textSearch: + type: string + description: Поиск по артикулу продавца, артикулу WB, баркоду. + example: + settings: + sort: + ascending: false + filter: + textSearch: '' + cursor: + limit: 11 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + cards: + description: Массив карточек товаров + type: array + items: + type: object + properties: + nmID: + type: integer + description: Артикул WB + vendorCode: + type: string + description: Артикул продавца + subjectID: + description: Идентификатор предмета + type: string + subjectName: + description: Название предмета + type: string + photos: + type: array + description: Массив фото + items: + type: object + properties: + big: + description: URL фото `900х1200` + type: string + c246x328: + description: URL фото `248х328` + type: string + c516x688: + description: URL фото `516х688` + type: string + square: + description: URL фото `600х600` + type: string + tm: + description: URL фото `75х100` + type: string + video: + type: string + description: URL видео + sizes: + type: array + description: Массив размеров + items: + type: object + properties: + chrtID: + type: integer + description: ID размера + techSize: + type: string + description: Размер товара + wbSize: + type: string + description: Российский размер товара + skus: + type: array + description: Массив баркодов + items: + type: string + example: 12345Ejf5 + dimensions: + type: object + properties: + length: + type: integer + width: + type: integer + height: + type: integer + characteristics: + description: Массив характеристик, при наличии + type: array + items: + type: object + properties: + id: + type: integer + name: + type: string + value: + type: array + items: + type: string + createdAt: + type: string + trashedAt: + type: string + cursor: + type: object + properties: + trashedAt: + type: string + nmID: + type: integer + total: + type: integer + example: + cards: + - nmID: 1234567 + vendorCode: wb5xsy5ftj + subjectID: 1436 + subjectName: Ведра хозяйственные + sizes: + - chrtID: 111111111 + techSize: '0' + skus: + - xxxxxxxxxxxx + dimensions: + length: 0 + width: 0 + height: 0 + createdAt: '2023-12-05T14:55:09.323462Z' + trashedAt: '2023-12-06T10:57:42.193028Z' + cursor: + trashedAt: '2023-12-06T10:57:42.193028Z' + nmID: 194128521 + total: 1 + '400': + description: Неверная форма запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + /api/v2/upload/task: + servers: + - url: https://discounts-prices-api.wb.ru + post: + security: + - HeaderApiKey: [] + tags: + - Установка цен и скидок + summary: Установить цены и скидки + description: | + Устанавливает цены и скидки для товаров + requestBody: + $ref: '#/components/requestBodies/SupplierTaskRequest' + responses: + '200': + $ref: '#/components/responses/SuccessTaskResponse' + '208': + $ref: '#/components/responses/Responses208' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + GoodsNumberLimitExceeded: + $ref: '#/components/examples/GoodsNumberLimitExceeded' + DuplicatedNmIdInTask: + $ref: '#/components/examples/DuplicatedNmIdInTask' + NoGoodsForProcess: + $ref: '#/components/examples/NoGoodsForProcess' + FailedToParseData: + $ref: '#/components/examples/FailedToParseData' + PriceHasDecimalPlaces: + $ref: '#/components/examples/PriceHasDecimalPlaces' + WrongPriceValue: + $ref: '#/components/examples/WrongPriceValue' + WrongNmValue: + $ref: '#/components/examples/WrongNmValue' + BothDiscountAndPriceAreNotSet: + $ref: '#/components/examples/PriceNotSet' + EmptyData: + $ref: '#/components/examples/EmptyData' + NoValidGoodsInTask: + $ref: '#/components/examples/NoValidGoodsInTask' + '401': + $ref: '#/components/responses/Responses401' + '429': + $ref: '#/components/responses/ExceededLimitRequests429' + '500': + $ref: '#/components/responses/Responses500' + /api/v2/upload/task/size: + servers: + - url: https://discounts-prices-api.wb.ru + post: + security: + - HeaderApiKey: [] + tags: + - Установка цен и скидок + summary: Установить цены для размеров + description: | + Устанавливает цены отдельно для размеров. Работает только для товаров из категорий, где можно устанавливать цены отдельно для разных размеров. Для таких товаров в ответе метода [Получить товары по артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1size~1nm/get) `editableSizePrice: true`. + requestBody: + $ref: '#/components/requestBodies/SupplierTaskRequestSize' + responses: + '200': + $ref: '#/components/responses/SuccessTaskResponse' + '208': + $ref: '#/components/responses/Responses208' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + GoodsNumberLimitExceeded: + $ref: '#/components/examples/GoodsNumberLimitExceeded' + DuplicatedNmIdInTask: + $ref: '#/components/examples/DuplicatedNmIdInTask' + NoGoodsForProcess: + $ref: '#/components/examples/NoGoodsForProcess' + FailedToParseData: + $ref: '#/components/examples/FailedToParseData' + PriceHasDecimalPlaces: + $ref: '#/components/examples/PriceHasDecimalPlaces' + WrongPriceValue: + $ref: '#/components/examples/WrongPriceValue' + WrongNmValue: + $ref: '#/components/examples/WrongNmValue' + BothDiscountAndPriceAreNotSet: + $ref: '#/components/examples/BothDiscountAndPriceAreNotSet' + EmptyData: + $ref: '#/components/examples/EmptyData' + NoValidGoodsInTask: + $ref: '#/components/examples/NoValidGoodsInTask' + '401': + $ref: '#/components/responses/Responses401' + '429': + $ref: '#/components/responses/ExceededLimitRequests429' + '500': + $ref: '#/components/responses/Responses500' + /api/v2/history/tasks: + servers: + - url: https://discounts-prices-api.wb.ru + get: + security: + - HeaderApiKey: [] + tags: + - Состояния загрузок + summary: Состояние обработанной загрузки + description: Возвращает информацию про обработанную загрузку + parameters: + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseTaskHistory' + '400': + $ref: '#/components/responses/ErrorWrongParameters' + '401': + $ref: '#/components/responses/ErrorUnknownUser' + 4XX: + $ref: '#/components/responses/ErrorResponse' + 5XX: + $ref: '#/components/responses/ErrorInternalResponse' + /api/v2/history/goods/task: + servers: + - url: https://discounts-prices-api.wb.ru + get: + security: + - HeaderApiKey: [] + tags: + - Состояния загрузок + summary: Детализация обработанной загрузки + description: Возвращает информацию о товарах в обработанной загрузке, в том числе, об ошибках в них + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseGoodHistories' + '400': + $ref: '#/components/responses/ErrorWrongParameters' + '401': + $ref: '#/components/responses/ErrorUnknownUser' + 4XX: + $ref: '#/components/responses/ErrorResponse' + 5XX: + $ref: '#/components/responses/ErrorInternalResponse' + /api/v2/buffer/tasks: + servers: + - url: https://discounts-prices-api.wb.ru + get: + security: + - HeaderApiKey: [] + tags: + - Состояния загрузок + summary: Состояние необработанной загрузки + description: Возвращает информацию про загрузку в обработке + parameters: + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseTaskBuffer' + '400': + $ref: '#/components/responses/ErrorWrongParameters' + '401': + $ref: '#/components/responses/ErrorUnknownUser' + 4XX: + $ref: '#/components/responses/ErrorResponse' + 5XX: + $ref: '#/components/responses/ErrorInternalResponse' + /api/v2/buffer/goods/task: + servers: + - url: https://discounts-prices-api.wb.ru + get: + security: + - HeaderApiKey: [] + tags: + - Состояния загрузок + summary: Детализация необработанной загрузки + description: Возвращает информацию о товарах из загрузки в обработке, в том числе, об ошибках в них + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseGoodBufferHistories' + '400': + $ref: '#/components/responses/ErrorWrongParameters' + '401': + $ref: '#/components/responses/ErrorUnknownUser' + 4XX: + $ref: '#/components/responses/ErrorResponse' + 5XX: + $ref: '#/components/responses/ErrorInternalResponse' + /api/v2/list/goods/filter: + servers: + - url: https://discounts-prices-api.wb.ru + get: + security: + - HeaderApiKey: [] + tags: + - Списки товаров + summary: Получить товары + description: Возвращает информацию о товаре по его артикулу. Чтобы получить информацию обо всех товарах, оставьте артикул пустым + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/filterNmID' + responses: + '200': + $ref: '#/components/responses/ResponseGoodsLists' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + SortError: + $ref: '#/components/examples/SortError' + InvalidQueryParams: + $ref: '#/components/examples/InvalidQueryParams' + '401': + $ref: '#/components/responses/Responses401' + '429': + $ref: '#/components/responses/ExceededLimitRequests429' + '500': + $ref: '#/components/responses/Responses500' + /api/v2/list/goods/size/nm: + servers: + - url: https://discounts-prices-api.wb.ru + get: + security: + - HeaderApiKey: [] + tags: + - Списки товаров + summary: Получить размеры товара + description: | + Возвращает информацию о всех размерах одного товара. Работает только для товаров из категорий, где можно устанавливать цены отдельно для разных размеров. Для таких товаров в ответе метода [Получить товары по артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1size~1nm/get) `editableSizePrice: true`. + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/nmID' + responses: + '200': + $ref: '#/components/responses/ResponseSizeLists' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + InvalidQueryParams: + $ref: '#/components/examples/InvalidQueryParams' + '401': + $ref: '#/components/responses/Responses401' + '429': + $ref: '#/components/responses/ExceededLimitRequests429' + '500': + $ref: '#/components/responses/Responses500' + /api/v1/acceptance/coefficients: + get: + security: + - HeaderApiKey: [] + tags: + - Информация для формирования поставок + summary: Коэффициенты приёмки + description: | + Возвращает коэффициенты приёмки для конкретных складов на ближайшие 14 дней.
Максимум 6 запросов в минуту + parameters: + - name: warehouseIDs + in: query + description: ID складов.
По умолчанию возвращаются данные по всем складам + schema: + type: string + example: 507,117501 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/models.AcceptanceCoefficient' + examples: + ResponseCoefficients: + $ref: '#/components/examples/ResponseCoefficients' + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/models.ErrorModel' + examples: + BadWarehouseIDsParam: + $ref: '#/components/examples/Response400Coefficients' + '401': + description: Ошибка авторизации + '403': + description: Доступ запрещён + '404': + description: Адрес не найден + '429': + description: Слишком много запросов + '500': + description: Внутренняя ошибка сервера + /api/v1/acceptance/options: + post: + security: + - HeaderApiKey: [] + tags: + - Информация для формирования поставок + summary: Опции приёмки + description: | + Возвращает информацию о том, какие склады и типы упаковки доступны для поставки. Список складов определяется по баркоду товара и его количеству.
Максимум 30 запросов в минуту + requestBody: + content: + application/json: + schema: + type: array + maxItems: 5000 + items: + $ref: '#/components/schemas/models.Good' + examples: + RequestOptions: + $ref: '#/components/examples/RequestOptions' + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/models.OptionsResultModel' + examples: + Response: + $ref: '#/components/examples/OptionsResponse' + '401': + description: Ошибка авторизации + '403': + description: Доступ запрещён + '404': + description: Адрес не найден + '429': + description: Слишком много запросов + '500': + description: Внутренняя ошибка сервера + x-codegen-request-body-name: goods + /api/v1/warehouses: + get: + security: + - HeaderApiKey: [] + tags: + - Информация для формирования поставок + summary: Список складов + description: | + Возвращает список складов Wildberries.
Максимум 6 запросов в минуту + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/models.WarehousesResultItems' + '401': + description: Ошибка авторизации + '403': + description: Доступ запрещён + '404': + description: Адрес не найден + '429': + description: Слишком много запросов + '500': + description: Внутренняя ошибка сервера + /api/v3/orders/new: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить список новых сборочных заданий + description: | + Возвращает список всех новых сборочных заданий у продавца на данный момент. + responses: + '200': + description: Список сборочных заданий + content: + application/json: + schema: + type: object + nullable: false + properties: + orders: + type: array + nullable: false + description: Список новых сборочных заданий + items: + $ref: '#/components/schemas/OrderNew' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить информацию по сборочным заданиям + description: | + Возвращает информацию по сборочным заданиям без их актуального статуса.
Данные по сборочному заданию, возвращающиеся в данном методе, не меняются.
Рекомендуется использовать для получения исторических данных. + parameters: + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Next' + - name: dateFrom + in: query + schema: + type: integer + description: Дата начала периода в формате Unix timestamp. Необязательный параметр. + - name: dateTo + in: query + schema: + type: integer + description: Дата конца периода в формате Unix timestamp. Необязательный параметр. + responses: + '200': + description: Список сборочных заданий + content: + application/json: + schema: + type: object + nullable: false + properties: + next: + $ref: '#/components/schemas/Next' + orders: + type: array + nullable: false + items: + $ref: '#/components/schemas/Order' + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/status: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить статусы сборочных заданий + description: | + Возвращает статусы сборочных заданий по переданному списку идентификаторов сборочных заданий. + + **supplierStatus** - статус сборочного задания, триггером изменения которого является сам продавец.
+ Возможны следующие значения данного поля: + | Статус | Описание | Как перевести сборочное задание в данный статус | + | ------- | --------- | --------------------------------------| + | new | Новое сборочное задание | + | confirm | На сборке | При добавлении сборочного задания к поставке **PATCH** */api/v3/supplies/{supplyId}/orders/{orderId}* + | complete | В доставке | При переводе в доставку соответствующей поставки **PATCH** */api/v3/supplies/{supplyId}/deliver* + | cancel | Отменено продавцом | **PATCH** */api/v3/orders/{orderId}/cancel* + + + **wbStatus** - статус сборочного задания в системе Wildberries.
+ Возможны следующие значения данного поля: + - **waiting** - сборочное задание в работе + - **sorted** - сборочное задание отсортировано + - **sold** - сборочное задание получено покупателем + - **canceled** - отмена сборочного задания + - **canceled_by_client** - покупатель отменил заказ при получении + - **declined_by_client** - покупатель отменил заказ в первый чаc new
Отмена доступна покупателю в первый час с момента заказа, если заказ не переведён на сборку + - **defect** - отмена сборочного задания по причине брака + - **ready_for_pickup** - сборочное задание прибыло на ПВЗ + requestBody: + content: + application/json: + schema: + type: object + required: + - orders + properties: + orders: + type: array + minItems: 1 + maxItems: 1000 + description: Список идентификаторов сборочных заданий + items: + type: integer + format: int64 + example: 5632423 + responses: + '200': + description: Список статусов сборочных заданий + content: + application/json: + schema: + type: object + properties: + orders: + type: array + nullable: false + items: + type: object + properties: + id: + type: integer + format: int64 + nullable: false + description: Идентификатор сборочного задания + example: 5632423 + supplierStatus: + type: string + nullable: false + description: Статус сборочного задания продавца (устанавливается продавцом) + enum: + - new + - confirm + - complete + - cancel + example: new + wbStatus: + type: string + nullable: false + description: Статус сборочного задания в системе Wildberries + enum: + - waiting + - sorted + - sold + - canceled + - canceled_by_client + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/orders/reshipment: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить все сборочные задания на повторную отгрузку + description: Возвращает все сборочные задания, требующие повторной отгрузки. new + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + orders: + description: Список заказов + type: array + items: + type: object + properties: + supplyID: + description: Идентификатор поставки + orderID: + description: Идентификатор сборочного задания + example: + orders: + - supplyID: WB-GI-1234567 + orderID: 5632423 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/{orderId}/cancel: + servers: + - url: https://suppliers-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Отменить сборочное задание + description: Переводит сборочное задание в статус **cancel** ("Отменено продавцом"). + parameters: + - $ref: '#/components/parameters/Order' + responses: + '204': + description: Отменено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка обновления статуса + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + StatusMismatch: + $ref: '#/components/examples/StatusMismatch' + StatusChangeNotAllowed: + $ref: '#/components/examples/StatusChangeNotAllowed' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/{orderId}/meta/sgtin: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Закрепить за сборочным заданием КиЗ (маркировку Честного знака) + description: | + Метод позволяет закрепить за сборочным заданием КиЗ (маркировку Честного знака). new
Закрепление КиЗ за сборочным заданием возможно только в случае, если это поле возвращается в ответе метода **Получить метаданные сборочного задания**, а сборочное задание находится в статусе `confirm`.

Получить загруженные КиЗ можно методом Получить метаданные сборочного задания
С правилами работы с КиЗ можно ознакомиться тут: https://честныйзнак.рф

+ parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + sgtins: + type: array + description: Массив КиЗов. Допускается от 16 до 135 символов для кода одной маркировки. + minItems: 1 + maxItems: 24 + items: + type: string + description: Код маркировки на упаковке. От 16 до 135 символов. + example: '1234567890123456' + responses: + '204': + description: Отправлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка добавления маркировки. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/stickers: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить этикетки для сборочных заданий + description: | + Возвращает список этикеток по переданному массиву сборочных заданий. + Можно запросить этикетку в формате svg, zplv (вертикальный), zplh (горизонтальный), png. + + **Ограничения при работе с методом**: + - Нельзя запросить больше 100 этикеток за раз (не более 100 идентификаторов сборочных заданий в запросе). + - Метод возвращает этикетки только для сборочных заданий, находящихся на сборке (в статусе **confirm**). + - Доступные размеры: +
580x400 пикселей, при параметрах width = 58, height = 40
+
400x300 пикселей, при параметрах width = 40, height = 30
+ parameters: + - name: type + in: query + required: true + description: Тип этикетки + schema: + type: string + enum: + - svg + - zplv + - zplh + - png + - name: width + in: query + required: true + description: Ширина этикетки + schema: + type: integer + enum: + - 58 + - 40 + - name: height + in: query + required: true + description: Высота этикетки + schema: + type: integer + enum: + - 40 + - 30 + requestBody: + content: + application/json: + schema: + type: object + properties: + orders: + type: array + minItems: 1 + maxItems: 100 + description: Массив идентификаторов сборочных заданий + items: + type: integer + format: int64 + example: 5346346 + responses: + '200': + description: Список этикеток + content: + application/json: + schema: + type: object + properties: + stickers: + type: array + nullable: false + items: + type: object + properties: + orderId: + type: integer + format: int64 + nullable: false + description: Идентификатор сборочного задания + example: 5346346 + partA: + type: integer + nullable: false + description: Первая часть идентификатора этикетки (для печати подписи) + example: 231648 + partB: + type: integer + nullable: false + description: Вторая часть идентификатора этикетки + example: 9753 + barcode: + type: string + nullable: false + description: Закодированное значение этикетки + example: '!uKEtQZVx' + file: + type: string + format: byte + nullable: false + description: Полное представление этикетки в заданном формате. (кодировка base64) + example: PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhLS0gR2VuZXJhdGVkIGJ5IFNWR28gLS0+Cjxzdmcgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiCiAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQwMCIgaGVpZQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzE4IiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzI2IiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzMwIiB5PSIyMCIgd2lkdGg9IjQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMjAiIHk9IjIwMCIgd2lkdGg9IjM1MCIgaGVpZ2h0PSI5MCIgc3R5bGU9ImZpbGw6YmxhY2siIC8+Cjx0ZXh0IHg9IjMwIiB5PSIyNDAiIHN0eWxlPSJmaWxsOndoaXRlO2ZvbnQtc2l6ZTozMHB0O3RleHQtYW5jaG9yOnN0YXJ0IiA+MjMxNjQ4PC90ZXh0Pgo8dGV4dCB4PSIzNTAiIHk9IjI3MCIgc3R5bGU9ImZpbGw6d2hpdGU7Zm9udC1zaXplOjUwcHQ7dGV4dC1hbmNob3I6ZW5kIiA+OTc1MzwvdGV4dD4KPC9zdmc+Cg== + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/{orderId}/meta: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить метаданные сборочного задания + description: | + Возвращает метаданные заказа.
Возможные метаданные:
**imei**
**uin**
**gtin**
**sgtin**
В ответе метода возвращаются метаданные, доступные для сборочного задания. Если ответ вернулся с пустой структурой **meta**, значит у сборочного задания нет метаданных, и добавление их не доступно. + parameters: + - $ref: '#/components/parameters/Order' + responses: + '200': + description: Метаданные заказа + content: + application/json: + schema: + type: object + nullable: false + properties: + meta: + $ref: '#/components/schemas/Meta' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Удалить метаданные сборочного задания + description: | + Удаляет значение метаданных заказа для переданного ключа.
Возможные метаданные:
**imei**
**uin**
**gtin**
**sgtin** new
Передается только одно значение. + parameters: + - $ref: '#/components/parameters/Order' + - name: key + in: query + schema: + type: string + description: Название метаданных для удаления (**imei**, **uin**, **gtin**, **sgtin**). Передается только одно значение. + responses: + '204': + description: Удалено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Ошибка удаления метаданных + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/{orderId}/meta/uin: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Закрепить за сборочным заданием УИН (уникальный идентификационный номер) + description: Обновляет УИН сборочного задания. У одного сборочного задания может быть только один УИН. Добавлять маркировку можно только для заказов в статусе `confirm` и доставка которых осуществляется силами Wildberries. + parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + uin: + type: string + minLength: 16 + maxLength: 16 + description: УИН + example: '1234567890123456' + required: + - uin + responses: + '204': + description: Обновлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Ошибка обновления метаданных. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/{orderId}/meta/imei: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Закрепить за сборочным заданием IMEI + description: Обновляет IMEI сборочного задания. У одного сборочного задания может быть только один IMEI. Добавлять маркировку можно только для заказов в статусе `confirm` и доставка которых осуществляется силами Wildberries. + parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + imei: + type: string + minLength: 15 + maxLength: 15 + description: IMEI + example: '123456789012345' + required: + - imei + responses: + '204': + description: Обновлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Ошибка обновления метаданных. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/orders/{orderId}/meta/gtin: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Закрепить за сборочным заданием GTIN + description: Обновляет GTIN сборочного задания. У одного сборочного задания может быть только один GTIN. Добавлять маркировку можно только для заказов в статусе `confirm` и доставка которых осуществляется силами Wildberries. + parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + gtin: + type: string + minLength: 13 + maxLength: 13 + description: GTIN + example: '1234567890123' + required: + - gtin + responses: + '204': + description: Обновлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Ошибка обновления метаданных. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/files/orders/external-stickers: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Сборочные задания + summary: Получить список ссылок на этикетки для сборочных заданий, которые требуются при кроссбордере + description: | + Возвращает список ссылок на этикетки для сборочных заданий, которые требуются при кроссбордере. + + **Ограничения при работе с методом**: + - Нельзя запросить больше 100 этикеток за раз (не более 100 идентификаторов сборочных заданий в запросе). + - Метод возвращает этикетки только для сборочных заданий, находящихся в доставке (в статусе **complete**). + requestBody: + content: + application/json: + schema: + type: object + properties: + orders: + type: array + minItems: 1 + maxItems: 100 + description: Массив идентификаторов сборочных заданий + items: + type: integer + format: int64 + example: 5346346 + responses: + '200': + description: Список ссылок на этикетки + content: + application/json: + schema: + type: object + properties: + stickers: + type: array + nullable: false + items: + type: object + properties: + orderID: + type: integer + format: int64 + nullable: false + description: Идентификатор сборочного задания + example: 5346346 + url: + type: string + nullable: false + description: Ссылка, по которой можно получить этикетку для сборочного задания + example: http://.../some-sticker + parcelID: + type: string + nullable: false + description: Трек-номер в этикетке для отслеживания сборочного задания + example: WB0000000001 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Создать новую поставку + description: | + **Ограничения работы с поставками**: + + - Только для сборочных заданий по схеме "Везу на склад WB" + - При добавлении в поставку все передаваемые сборочные задания в статусе **new** ("Новое") будут автоматически переведены в статус **confirm** ("На сборке"). + - Обратите внимание, что если вы переведёте сборочное задание в статус **cancel** ("Отмена продавцом"), то сборочное задание автоматически удалится из поставки, если было прикреплено к ней. + - Поставку можно собрать только из сборочных заданий (заказов) одного габаритного типа (cargoType). Новая поставка не обладает габаритным признаком. При добавлении первого заказа в поставку она приобретает габаритный признак этого заказа. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 128 + description: Наименование поставки + example: Тестовая поставка + responses: + '201': + description: Создано + content: + application/json: + schema: + type: object + properties: + id: + type: string + nullable: false + description: Идентификатор поставки + example: WB-GI-1234567 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + get: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Получить список поставок + description: | + Возвращает список поставок. + parameters: + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Next' + responses: + '200': + description: Список поставок + content: + application/json: + schema: + type: object + nullable: false + properties: + next: + $ref: '#/components/schemas/Next' + supplies: + type: array + nullable: false + description: Список поставок + items: + $ref: '#/components/schemas/Supply' + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/orders/{orderId}: + servers: + - url: https://suppliers-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Добавить к поставке сборочное задание + description: | + Добавляет к поставке сборочное задание и переводит его в статус **confirm** ("На сборке").
Также может перемещать сборочное задание между активными поставками, либо из закрытой в активную при условии, что сборочное задание требует повторной отгрузки.

`Важно!`
В пустую поставку можно добавить сборочное задание любого габаритного типа.
После добавления первого задания поставка приобретает габаритный тип этого задания, см. значение поля `cargoType` в ответе метода "Получить информацию о поставке".
После этого добавить в поставку можно только те задания, габаритный тип которых соответствует таковому у поставки. + parameters: + - $ref: '#/components/parameters/Supply' + - $ref: '#/components/parameters/Order' + responses: + '204': + description: Задание закреплено за поставкой + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка добавления сборочного задания к поставке + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToAddSupplyOrder: + $ref: '#/components/examples/FailedToAddSupplyOrder' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Получить информацию о поставке + description: | + Возвращает информацию о поставке. + parameters: + - $ref: '#/components/parameters/Supply' + responses: + '200': + description: Информация о поставке + content: + application/json: + schema: + $ref: '#/components/schemas/Supply' + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Удалить поставку + description: Удаляет поставку, если она активна и за ней не закреплено ни одно сборочное задание. + parameters: + - $ref: '#/components/parameters/Supply' + responses: + '204': + description: Удалено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: За поставкой закреплены сборочные задания + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + SupplyHasOrders: + $ref: '#/components/examples/SupplyHasOrders' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/orders: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Получить сборочные задания в поставке + description: | + Возвращает сборочные задания, закреплённые за поставкой. + parameters: + - $ref: '#/components/parameters/Supply' + responses: + '200': + description: Список сборочных заданий + content: + application/json: + schema: + type: object + nullable: false + properties: + orders: + type: array + nullable: false + items: + $ref: '#/components/schemas/SupplyOrder' + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/deliver: + servers: + - url: https://suppliers-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Передать поставку в доставку + description: | + Закрывает поставку и переводит все сборочные задания в ней в статус **complete** ("В доставке"). + После закрытия поставки новые сборочные задания к ней добавить будет невозможно. + Передать поставку в доставку можно только при наличии в ней хотя бы одного сборочного задания и отсутствии пустых коробов. + parameters: + - $ref: '#/components/parameters/Supply' + responses: + '204': + description: Передано в доставку + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка закрытия поставки + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + SupplyHasZeroOrders: + $ref: '#/components/examples/SupplyHasZeroOrders' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/barcode: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Получить QR поставки + description: | + Возвращает QR в svg, zplv (вертикальный), zplh (горизонтальный), png.
+ Можно получить, только если поставка передана в доставку. +
Доступные размеры:
+
580x400 пикселей + parameters: + - $ref: '#/components/parameters/Supply' + - name: type + in: query + required: true + description: Тип этикетки + schema: + type: string + enum: + - svg + - zplv + - zplh + - png + responses: + '200': + description: QR поставки + content: + application/json: + schema: + type: object + nullable: false + properties: + barcode: + type: string + nullable: false + description: Закодированное значение этикетки (идентификатор поставки) + example: WB-GI-12345678 + file: + type: string + format: byte + nullable: false + description: Полное представление этикетки в заданном формате. (кодировка base64) + example: U3dhZ2dlciByb2Nrcw== + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка запроса данных + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + SupplyNotClosed: + $ref: '#/components/examples/SupplyNotClosed' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/trbx: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Получить список коробов поставки + description: | + Возвращает список коробов и идентификаторы заказов, входящих в них. + parameters: + - $ref: '#/components/parameters/Supply' + responses: + '200': + description: Список коробов + content: + application/json: + schema: + type: object + properties: + trbxes: + type: array + items: + $ref: '#/components/schemas/SupplyTrbx' + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Добавить короба к поставке + description: Добавляет требуемое количество коробов в поставку. Можно добавить, только пока поставка на сборке. + parameters: + - $ref: '#/components/parameters/Supply' + requestBody: + content: + application/json: + schema: + type: object + required: + - amount + properties: + amount: + type: integer + minimum: 1 + maximum: 1000 + description: Количество коробов, которые необходимо добавить к поставке. + example: 4 + responses: + '201': + description: Создано + content: + application/json: + schema: + type: object + properties: + trbxIds: + type: array + description: Список ID коробов, которые были созданы. + minItems: 1 + items: + type: string + example: WB-TRBX-1234567 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/FailedToAddSupplyTrbx' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Удалить короба из поставки + description: Убирает заказы из перечисленных коробов поставки и удаляет короба. Можно удалить, только пока поставка на сборке. + parameters: + - $ref: '#/components/parameters/Supply' + requestBody: + content: + application/json: + schema: + type: object + required: + - trbxIds + properties: + trbxIds: + type: array + description: Список ID коробов, которые необходимо удалить. + items: + type: string + example: WB-TRBX-1234567 + responses: + '204': + description: Удалено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/trbx/{trbxId}: + servers: + - url: https://suppliers-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Добавить заказы к коробу + description: Добавляет заказы в короб для выбранной поставки. Можно добавить, только пока поставка на сборке. + parameters: + - $ref: '#/components/parameters/Supply' + - $ref: '#/components/parameters/Trbx' + requestBody: + content: + application/json: + schema: + type: object + required: + - orderIds + properties: + orderIds: + type: array + description: Список заказов, которые необходимо добавить в короб. + items: + type: integer + example: 1234567 + responses: + '204': + description: Добавлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/trbx/{trbxId}/orders/{orderId}: + servers: + - url: https://suppliers-api.wildberries.ru + delete: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Удалить заказ из короба + description: Удаляет заказ из короба выбранной поставки. Можно удалить, только пока поставка на сборке. + parameters: + - $ref: '#/components/parameters/Supply' + - $ref: '#/components/parameters/Trbx' + - $ref: '#/components/parameters/Order' + responses: + '204': + description: Удалено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/supplies/{supplyId}/trbx/stickers: + servers: + - url: https://suppliers-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Поставки + summary: Получить стикеры коробов поставки + description: | + Возвращает стикеры QR в svg, zplv (вертикальный), zplh (горизонтальный), png.
+ Можно получить, только если в коробе есть заказы. +
Размер стикеров: 580x400 пикселей
+ parameters: + - $ref: '#/components/parameters/Supply' + - name: type + in: query + required: true + description: Тип этикетки + schema: + type: string + enum: + - svg + - zplv + - zplh + - png + requestBody: + content: + application/json: + schema: + type: object + required: + - trbxIds + properties: + trbxIds: + type: array + description: Список ID коробов, по которым необходимо вернуть стикеры. + items: + type: string + example: WB-TRBX-1234567 + responses: + '200': + description: Стикеры коробов + content: + application/json: + schema: + type: object + nullable: false + properties: + stickers: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/TrbxStickers' + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/stocks/{warehouseId}: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Остатки + summary: Обновить остатки товаров + description: | + Обновляет остатки товаров.
`Важно!` Имена параметров запроса не валидируются. При отправке некорректных имен Вы получите успешный ответ(204), но остатки не обновятся.
Тщательнее проверяйте данные перед отправкой. + parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + content: + application/json: + schema: + type: object + required: + - stocks + properties: + stocks: + type: array + minItems: 1 + maxItems: 1000 + description: Массив баркодов товаров и их остатков + items: + type: object + properties: + sku: + type: string + description: Баркод + example: BarcodeTest123 + amount: + type: integer + maximum: 100000 + description: Остаток + example: 10 + responses: + '204': + description: Обновлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка обновления остатков + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Error' + example: + - code: SubjectDBSRestriction + message: Категория товара недоступна для продажи по схеме 'Везу на склад Wildberries'. + data: + - sku: skuTest1 + stock: 0 + - code: SubjectFBSRestriction + message: Категория товара недоступна для продажи по схеме 'Везу самостоятельно до покупателя'. + data: + - sku: skuTest2 + stock: 1 + - code: UploadDataLimit + message: Превышен лимит загружаемых данных + data: + - sku: skuTest2 + stock: 100001 + - code: CargoWarehouseRestriction + message: Выбранный склад не предназначен для крупногабаритных товаров. Добавьте их на соответствующий склад + data: + - sku: skuTest3 + stock: 10 + - code: NotFound + message: Не найдено + data: + - sku: skuTest4 + stock: 10 + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + security: + - HeaderApiKey: [] + tags: + - Остатки + summary: Удалить остатки товаров + description: Удаляет остатки товаров. **Внимание! Действие необратимо**. Удаленный остаток будет необходимо загрузить повторно для возобновления продаж. + parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + skus: + type: array + nullable: false + minItems: 1 + maxItems: 1000 + description: Массив баркодов + items: + type: string + nullable: false + example: BarcodeTest123 + responses: + '204': + description: Удалено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + description: Не найдены запрашиваемые данные + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: NotFound + message: Не найдено + data: + - skuTest1 + - skuTest2 + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + security: + - HeaderApiKey: [] + tags: + - Остатки + summary: Получить остатки товаров + description: Возвращает остатки товаров. + parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + required: true + content: + application/json: + schema: + type: object + nullable: false + properties: + skus: + type: array + description: Массив баркодов + minItems: 1 + maxItems: 1000 + items: + type: string + example: BarcodeTest123 + responses: + '200': + description: Список остатков + content: + application/json: + schema: + type: object + properties: + stocks: + type: array + nullable: false + items: + type: object + properties: + sku: + type: string + nullable: false + description: Баркод + example: BarcodeTest123 + amount: + type: integer + nullable: false + description: Остаток + example: 10 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/offices: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Склады + summary: Получить список складов WB + description: Возвращает список всех складов WB для привязки к складам продавца. + responses: + '200': + description: Список складов WB + content: + application/json: + schema: + type: array + nullable: false + description: Список складов WB + items: + $ref: '#/components/schemas/Office' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/warehouses: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Склады + summary: Получить список складов продавца + description: Возвращает список всех складов продавца. + responses: + '200': + description: Список складов продавца + content: + application/json: + schema: + type: array + nullable: false + description: Список складов продавца + items: + $ref: '#/components/schemas/Warehouse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + security: + - HeaderApiKey: [] + tags: + - Склады + summary: Создать склад продавца + description: Создает склад продавца. Нельзя привязывать склад WB, который уже используется. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + nullable: false + minLength: 1 + maxLength: 200 + description: Имя склада продавца + example: Склад Коледино + officeId: + type: integer + nullable: false + minimum: 1 + description: ID склада WB + example: 15 + required: + - name + - officeId + responses: + '201': + description: Создано + content: + application/json: + schema: + type: object + properties: + id: + type: integer + nullable: false + description: ID склада продавца + example: 2 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + WarehouseNameInvalid: + $ref: '#/components/examples/WarehouseNameInvalid' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка создания нового склада + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/warehouses/{warehouseId}: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Склады + summary: Обновить склад + description: Обновляет склад продавца. Изменение выбранного склада WB допустимо раз в сутки. Нельзя привязывать склад WB, который уже используется. + parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + nullable: false + minLength: 1 + maxLength: 200 + description: Имя склада продавца + example: Склад Коледино + officeId: + type: integer + nullable: false + minimum: 1 + description: Идентификатор склада WB + example: 15 + required: + - name + - officeId + responses: + '204': + description: Обновлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + WarehouseNameInvalid: + $ref: '#/components/examples/WarehouseNameInvalid' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Ошибка обновления склада + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + security: + - HeaderApiKey: [] + tags: + - Склады + summary: Удалить склад продавца + description: Удаляет склад продавца. + parameters: + - $ref: '#/components/parameters/Warehouse' + responses: + '204': + description: Удалено + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/passes/offices: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Пропуска + summary: Получить список складов, для которых требуется пропуск + description: | + Возвращает список складов для привязки к пропуску продавца.
Обратите внимание: данные, которые возвращает метод, могут меняться. Рекомендуем периодически синхронизировать список. + responses: + '200': + description: Список складов, для которых требуется пропуск. + content: + application/json: + schema: + type: array + nullable: false + description: Список складов + items: + $ref: '#/components/schemas/PassOffice' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/passes/offices: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Пропуска + summary: Получить список складов, для которых требуется пропуск + description: | + Возвращает список складов для привязки к пропуску продавца.
Обратите внимание: данные, которые возвращает метод, могут меняться. Рекомендуем периодически синхронизировать список. + responses: + '200': + description: Список складов, для которых требуется пропуск. + content: + application/json: + schema: + type: array + nullable: false + description: Список складов + items: + $ref: '#/components/schemas/PassOffice' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/passes: + servers: + - url: https://suppliers-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Пропуска + summary: Получить список пропусков + description: Возвращает список всех пропусков продавца. + responses: + '200': + description: Список пропусков продавца + content: + application/json: + schema: + type: array + nullable: false + description: Список пропусков продавца + items: + $ref: '#/components/schemas/Pass' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + security: + - HeaderApiKey: [] + tags: + - Пропуска + summary: Создать пропуск + description: | + Создает пропуск продавца.
Пропуск действует 48 часов со времени создания. Метод ограничен одним вызовом в 10 минут. + requestBody: + required: true + description: Общая длина ФИО ограничена от 6 до 100 символов. В номере машины могут быть только буквы и цифры. + content: + application/json: + schema: + type: object + properties: + firstName: + type: string + nullable: false + minLength: 1 + description: Имя водителя + example: Александр + lastName: + type: string + nullable: false + minLength: 1 + description: Фамилия водителя + example: Петров + carModel: + type: string + nullable: false + minLength: 1 + maxLength: 100 + description: Марка машины + example: Lamborghini + carNumber: + type: string + nullable: false + minLength: 6 + maxLength: 9 + description: Номер машины + example: A456BC123 + officeId: + type: integer + format: int64 + nullable: false + minimum: 1 + description: ID склада + example: 15 + required: + - firstName + - lastName + - carModel + - carNumber + - officeId + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + id: + type: integer + nullable: false + description: ID пропуска продавца + example: 2 + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v3/passes/{passId}: + servers: + - url: https://suppliers-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Пропуска + summary: Обновить пропуск + description: Обновляет данные пропуска продавца. + parameters: + - $ref: '#/components/parameters/Pass' + requestBody: + required: true + description: Общая длина ФИО ограничена от 6 до 100 символов. В номере машины могут быть только буквы и цифры. + content: + application/json: + schema: + type: object + properties: + firstName: + type: string + nullable: false + minLength: 1 + description: Имя водителя + example: Александр + lastName: + type: string + nullable: false + minLength: 6 + description: Фамилия водителя + example: Петров + carModel: + type: string + nullable: false + minLength: 1 + maxLength: 100 + description: Марка машины + example: Lamborghini + carNumber: + type: string + nullable: false + minLength: 6 + maxLength: 9 + description: Номер машины + example: A456BC123 + officeId: + type: integer + format: int64 + nullable: false + minimum: 1 + description: ID склада + example: 15 + required: + - firstName + - lastName + - carModel + - carNumber + - officeId + responses: + '204': + description: Обновлено + '400': + description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + WarehouseNameInvalid: + $ref: '#/components/examples/WarehouseNameInvalid' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + security: + - HeaderApiKey: [] + tags: + - Пропуска + summary: Удалить пропуск + description: Удаляет пропуск продавца. + parameters: + - $ref: '#/components/parameters/Pass' + responses: + '204': + description: Удалено + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/ExceededLimitRequests' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/supplier/incomes: + servers: + - url: https://statistics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Поставки + description: "Поставки. Максимум 1 запрос в\_минуту" + tags: + - Статистика + parameters: + - name: dateFrom + in: query + schema: + type: string + format: RFC3339 + required: true + description: | + Дата и время последнего изменения по поставке.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
+ responses: + '200': + description: Список поставок + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IncomesItem' + example: + - incomeId: 12345 + number: '' + date: '2022-05-08T00:00:54' + lastChangeDate: '2022-05-08T00:44:15.5' + supplierArticle: ABCDEF + techSize: '0' + barcode: '2000328074123' + quantity: 3 + totalPrice: 0 + dateClose: '2022-05-08T00:00:00' + warehouseName: Подольск + nmId: 1234567 + status: Принято + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenIsNotApplicable: + $ref: '#/components/examples/TokenIsNotApplicable' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + examples: + RequestLimitStatistics: + $ref: '#/components/examples/RequestLimitStatistics' + /api/v1/supplier/stocks: + servers: + - url: https://statistics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Склад + description: "Остатки товаров на складах WB. Данные обновляются раз в 30 минут.
Сервис статистики не хранит историю остатков товаров, поэтому получить данные о них можно только в режиме \"на текущий момент\".
Максимум 1 запрос в\_минуту\n" + tags: + - Статистика + parameters: + - name: dateFrom + in: query + schema: + type: string + format: RFC3339 + required: true + description: | + Дата и время последнего изменения по товару.
Для получения полного остатка следует указывать максимально раннее значение.
Например, `2019-06-20`
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
+ responses: + '200': + description: Список товаров на складе + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StocksItem' + example: + - lastChangeDate: '2023-07-05T11:13:35' + warehouseName: Краснодар + supplierArticle: '443284' + nmId: 1439871458 + barcode: '2037401340280' + quantity: 33 + inWayToClient: 1 + inWayFromClient: 0 + quantityFull: 34 + category: Посуда и инвентарь + subject: Формы для запекания + brand: X + techSize: '0' + Price: 185 + Discount: 0 + isSupply: true + isRealization: false + SCCode: Tech + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenIsNotApplicable: + $ref: '#/components/examples/TokenIsNotApplicable' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + examples: + RequestLimitStatistics: + $ref: '#/components/examples/RequestLimitStatistics' + /api/v1/supplier/orders: + servers: + - url: https://statistics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Заказы + description: "Заказы.
Гарантируется хранение данных не более 90 дней от даты заказа.
Данные обновляются раз в 30 минут.
Для идентификации заказа следует использовать поле `srid`.
1 строка = 1 заказ = 1 единица товара.
Максимум 1 запрос в\_минуту\n" + tags: + - Статистика + parameters: + - name: dateFrom + in: query + schema: + type: string + format: RFC3339 + required: true + description: | + Дата и время последнего изменения по заказу.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
+ - $ref: '#/components/parameters/flag' + responses: + '200': + description: Список заказов + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/OrdersItem' + example: + - date: '2022-03-04T18:08:31' + lastChangeDate: '2022-03-06T10:11:07' + warehouseName: Подольск + countryName: Россия + oblastOkrugName: Центральный федеральный округ + regionName: Московская + supplierArticle: '12345' + nmId: 1234567 + barcode: '123453559000' + category: Бытовая техника + subject: Мультистайлеры + brand: Тест + techSize: '0' + incomeID: 56735459 + isSupply: false + isRealization: true + totalPrice: 1887 + discountPercent: 18 + spp: 26 + finishedPrice: 1145 + priceWithDisc: 1547 + isCancel: true + cancelDate: '2022-03-09T00:00:00' + orderType: Клиентский + sticker: '926912515' + gNumber: '34343462218572569531' + srid: 11.rf9ef11fce1684117b0nhj96222982382.3.0 + '400': + description: Ошибка в запросе + content: + application/json: + schema: + $ref: '#/components/schemas/responseErrorStatistics' + examples: + CantParseDateFrom: + $ref: '#/components/examples/CantParseDateFrom' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenIsNotApplicable: + $ref: '#/components/examples/TokenIsNotApplicable' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + examples: + RequestLimitStatistics: + $ref: '#/components/examples/RequestLimitStatistics' + /api/v1/supplier/sales: + servers: + - url: https://statistics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Продажи + description: "Продажи и возвраты.
Гарантируется хранение данных не более 90 дней от даты продажи.
Данные обновляются раз в 30 минут.
Для идентификации заказа следует использовать поле `srid`.
1 строка = 1 продажа/возврат = 1 единица товара.
Максимум 1 запрос в\_минуту\n" + tags: + - Статистика + parameters: + - name: dateFrom + in: query + schema: + type: string + format: RFC3339 + required: true + description: | + Дата и время последнего изменения по продаже/возврату.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
+ - $ref: '#/components/parameters/flag' + responses: + '200': + description: Список продаж + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SalesItem' + example: + - date: '2022-03-04T18:08:31' + lastChangeDate: '2022-03-06T10:11:07' + warehouseName: Подольск + countryName: Россия + oblastOkrugName: Центральный федеральный округ + regionName: Московская + supplierArticle: '12345' + nmId: 1234567 + barcode: '123453559000' + category: Бытовая техника + subject: Мультистайлеры + brand: Тест + techSize: '0' + incomeID: 56735459 + isSupply: false + isRealization: true + totalPrice: 1887 + discountPercent: 18 + spp: 20 + paymentSaleAmount: 93 + forPay: 1284.01 + finishedPrice: 1145 + priceWithDisc: 1547 + saleID: S9993700024 + orderType: Клиентский + sticker: '926912515' + gNumber: '34343462218572569531' + srid: 11.rf9ef11fce1684117b0nhj96222982382.3.0 + '400': + description: Ошибка в запросе + content: + application/json: + schema: + $ref: '#/components/schemas/responseErrorStatistics' + examples: + CantParseDateFrom: + $ref: '#/components/examples/CantParseDateFrom' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenIsNotApplicable: + $ref: '#/components/examples/TokenIsNotApplicable' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + examples: + RequestLimitStatistics: + $ref: '#/components/examples/RequestLimitStatistics' + /api/v5/supplier/reportDetailByPeriod: + servers: + - url: https://statistics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Отчет о продажах по реализации + description: "Детализация к еженедельному отчёту реализации. В отчёте доступны данные за последние 3 месяца. Максимум 1 запрос в\_минуту.\n\n
\n

Чтобы получить данные до 29\_января, используйте URL c v1: https://statistics-api.wildberries.ru/api/v1/supplier/reportDetailByPeriod

\n
\n\nЕсли нет данных за указанный период, метод вернет `null`.\n\n\nТехнический перерыв в работе метода: каждый понедельник с 3:00 до 16:00.\n\n\nИнструкция: Сохранение статистики в Excel\n" + tags: + - Статистика + parameters: + - name: dateFrom + in: query + schema: + type: string + format: RFC3339 + required: true + description: | + Начальная дата отчета.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
+ - in: query + name: limit + schema: + type: integer + default: 100000 + required: false + description: Максимальное количество строк отчета, возвращаемых методом. Не может быть более 100000. + - in: query + name: dateTo + schema: + type: string + format: date + required: true + description: Конечная дата отчета + - in: query + name: rrdid + schema: + type: integer + required: false + description: | + Уникальный идентификатор строки отчета. Необходим для получения отчета частями. +
+ Загрузку отчета нужно начинать с `rrdid = 0` и при последующих вызовах API передавать в запросе значение `rrd_id` из последней строки, полученной в результате предыдущего вызова. +
+ Таким образом для загрузки одного отчета может понадобиться вызывать API до тех пор, пока количество возвращаемых строк не станет равным нулю. + responses: + '200': + description: Список реализованных позиций + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DetailReportItem' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenIsNotApplicable: + $ref: '#/components/examples/TokenIsNotApplicable' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '429': + description: '' + content: + application/json: + schema: + oneOf: + - type: string + - $ref: '#/components/schemas/Response429' + examples: + TechnicalBreak: + value: 'Технический перерыв в работе метода: каждый понедельник с 3:00 до 16:00.' + RequestLimitStatistics: + $ref: '#/components/examples/RequestLimitStatistics' + /api/v2/nm-report/detail: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Воронка продаж + summary: Получение статистики КТ за выбранный период, по nmID/предметам/брендам/тегам + description: | + Получение статистики КТ за выбранный период, по nmID/предметам/брендам/тегам.
Поля `brandNames`,`objectIDs`, `tagIDs`, `nmIDs` могут быть пустыми, тогда в ответе идут все карточки продавца.
При выборе нескольких полей в ответ приходят данные по карточкам, у которых есть все выбранные поля. Работает с пагинацией.
+ Можно получить отчёт максимум за последний год (365 дней).
+ Также в данных, где предоставляется информация по предыдущему периоду: + * В `previousPeriod` данные за такой же период, что и в `selectedPeriod`. + * Если дата начала `previousPeriod` раньше, чем год назад от текущей даты, она будет приведена к виду: `previousPeriod.start = текущая дата - 365 дней.` + +
Максимум 3 запроса в минуту. + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportDetailRequest' + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportDetailResponse' + '400': + description: Некорректный формат запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v2/nm-report/grouped: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Воронка продаж + summary: Получение статистики КТ за период, сгруппированный по предметам, брендам и тегам + description: | + Получение статистики КТ за период, сгруппированный по предметам, брендам и тегам.
Поля `brandNames`, `objectIDs`, `tagIDs` могут быть пустыми, тогда группировка происходит по всем карточкам продавца.
+ Можно получить отчёт максимум за последний год (365 дней).
+ Также в данных, где предоставляется информация по предыдущему периоду: + * В `previousPeriod` данные за такой же период, что и в `selectedPeriod`. + * Если дата начала `previousPeriod` раньше, чем год назад от текущей даты, она будет приведена к виду: `previousPeriod.start = текущая дата - 365 дней.` + +
Максимум 3 запроса в минуту. + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportGroupedRequest' + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportGroupedResponse' + '400': + description: Некорректный формат запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v2/nm-report/detail/history: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Воронка продаж + summary: Получение статистики КТ по дням по выбранным nmID + description: | + Получение статистики КТ по дням по выбранным `nmID`. + Можно получить отчёт максимум за последнюю неделю. + Чтобы получать отчёты за период до года, подпишитесь на [расширенную аналитику Джем](https://seller.wildberries.ru/dynamic-product-categories/jam). +
Максимум 3 запроса в минуту. + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportDetailHistoryRequest' + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportDetailHistoryResponse' + '400': + description: Некорректный формат запроса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещен + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v2/nm-report/grouped/history: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Воронка продаж + summary: Получение статистики КТ по дням за период, сгруппированный по предметам, брендам и тегам + description: | + Получение статистики КТ по дням за период, сгруппированный по предметам, брендам и тегам.
Поля `brandNames`, `objectIDs`, `tagIDs` могут быть пустыми, тогда группировка происходит по всем карточкам продавца.
В запросе произведение количества предметов, брендов, тегов не должно быть больше 16. + Можно получить отчёт максимум за последнюю неделю. + Чтобы получать отчёты за период до года, подпишитесь на [расширенную аналитику Джем](https://seller.wildberries.ru/dynamic-product-categories/jam). +
Максимум 3 запроса в минуту. + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportGroupedHistoryRequest' + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportGroupedHistoryResponse' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v2/nm-report/downloads: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Воронка продаж (Джем) + security: + - HeaderApiKey: [] + summary: Создать отчёт + description: | + Вы можете создать отчёт с группировкой: + + * по артикулам Wildberries (`nmID`); + * по категориям, брендам и тегам. + + В каждом из этих отчётов можно сгруппировать данные по дням, неделям или месяцам. + + Максимум 3 запроса в минуту, при этом в сутки можно сгенерировать максимум 20 отчётов (считаются только успешные генерации). + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/BySelectedNmIDReq' + - $ref: '#/components/schemas/GroupedByObjectsBrandsAndTagsReq' + examples: + BySelectedNmID: + description: По артикулам Wildberries (`nmID`) + value: + id: 06eae887-9d9f-491f-b16a-bb1766fcb8d2 + reportType: DETAIL_HISTORY_REPORT + userReportName: Card report + params: + nmIDs: + - 1234567 + subjectIDs: + - 1234567 + brandNames: + - Name + tagIDs: + - 1234567 + startDate: '2023-06-21' + endDate: '2023-06-23' + timezone: Europe/Moscow + aggregationLevel: day + skipDeletedNm: false + GroupedByObjectsBrandsAndTags: + description: По категориям, брендам и тегам + value: + id: 06eea887-9d9f-491f-b16a-bb1766fcb8d2 + reportType: GROUPED_HISTORY_REPORT + userReportName: Subject report + params: + subjectIDs: + - 1234567 + brandNames: + - Name + tagIDs: + - 1234567 + startDate: '2023-06-21' + endDate: '2023-06-23' + timezone: Europe/Moscow + aggregationLevel: day + skipDeletedNm: false + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportCreateReportResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + get: + tags: + - Воронка продаж (Джем) + security: + - HeaderApiKey: [] + summary: Получить список отчётов + description: | + Максимум 3 запроса в минуту + parameters: + - in: query + name: filter[downloadIds] + description: ID отчёта + schema: + type: array + items: + type: string + format: uuid + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportGetReportsResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v2/nm-report/downloads/retry: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Воронка продаж (Джем) + security: + - HeaderApiKey: [] + summary: Сгенерировать отчёт повторно + description: | + Максимум 3 запроса в минуту + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportRetryReportRequest' + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/NmReportRetryReportResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/response429' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v2/nm-report/downloads/file/{downloadId}: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + tags: + - Воронка продаж (Джем) + security: + - HeaderApiKey: [] + summary: Получить отчёт + description: | + Можно получить отчёт, который сгенерирован в последние 48 часов.
Отчет будет загружен внутри архива ZIP в формате CSV.
+ + Максимум 3 запроса в минуту. + parameters: + - in: path + name: downloadId + description: ID отчёта + required: true + schema: + type: string + format: uuid + responses: + '200': + description: Успешно + content: + text/csv: + schema: + type: string + format: binary + description: | + Описание полей в файле CSV: + + | name | type | format | description | + |-----------------| --- | --- | --- | + | nmID (только для `DETAIL_HISTORY_REPORT`) | integer | int32 | Артикул Wildberries | + | dt | string | date | Дата | + | openCardCount | integer | int32 | Переходы в карточку товара | + | addToCartCount | integer | int32 | Положили в корзину, шт. | + | ordersCount | integer | int32 | Заказали товаров, шт. | + | ordersSumRub | integer | int32 | Заказали на сумму, ₽ | + | buyoutsCount | integer | int32 | Выкупили товаров, шт. | + | buyoutsSumRub | integer | int32 | Выкупили на сумму, ₽ | + | cancelCount | integer | int32 | Отменили товаров, шт. | + | cancelSumRub | integer | int32 | Отменили на сумму, ₽ | + | addToCartConversion | number | int32 | Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) | + | cartToOrderConversion | integer | int32 | Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) | + | buyoutPercent | integer | int32 | Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю) | + examples: + BySelectedNmIDRes: + $ref: '#/components/examples/BySelectedNmIDRes' + GroupedByObjectsBrandsAndTagsRes: + $ref: '#/components/examples/GroupedByObjectsBrandsAndTagsRes' + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '401': + description: Пользователь не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/response401' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + '429': + description: Слишком много запросов + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/response429' + - $ref: '#/components/schemas/response429Daily' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/responseError' + /api/v1/analytics/excise-report: + servers: + - url: https://seller-analytics-api.wildberries.ru + post: + tags: + - Товары с обязательной маркировкой + summary: Отчёт по товарам с обязательной маркировкой + description: | + Возвращает операции по маркируемым товарам. Максимум 10 запросов за 5 часов. + parameters: + - $ref: '#/components/parameters/DateTimeFrom' + - $ref: '#/components/parameters/DateTimeTo' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExciseReportRequest' + required: false + responses: + '200': + description: Отчёт + content: + application/json: + schema: + $ref: '#/components/schemas/ExciseReportResponse' + '400': + $ref: '#/components/responses/Response400' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/paid_storage: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Платное хранение + summary: Создать отчёт + description: | + Создаёт задание на генерацию отчёта. Можно получить отчёт максимум за 8 дней. + Максимум 1 запрос в минуту + parameters: + - name: dateFrom + in: query + required: true + schema: + type: string + example: '2022-01-01' + description: | + Начало отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: + + * `2019-06-20` + * `2019-06-20T23:59:59` + * `2019-06-20T00:00:00.12345` + * `2017-03-25T00:00:00` + + - name: dateTo + in: query + required: true + schema: + type: string + example: '2022-01-09' + description: | + Конец отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: + + * `2019-06-20` + * `2019-06-20T23:59:59` + * `2019-06-20T00:00:00.12345` + * `2017-03-25T00:00:00` + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTaskResponse' + examples: + CreateResponseData: + $ref: '#/components/examples/CreateResponseData' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + example: + errors: + - dateTo should be greater dateFrom + '404': + $ref: '#/components/responses/NotFound' + '429': + description: Слишком много запросов + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/paid_storage/tasks/{task_id}/status: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Платное хранение + summary: Проверить статус + description: | + Возвращает статус задания на генерацию. Максимум 1 запрос в 5 секунд + parameters: + - name: task_id + in: path + required: true + schema: + type: string + example: 06e06887-9d9f-491f-b16a-bb1766fcb8d2 + description: | + ID задания на генерацию + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/GetTasksResponse' + examples: + GetTasksResponseData: + $ref: '#/components/examples/GetTasksResponseData' + '400': + $ref: '#/components/responses/Response400' + '404': + $ref: '#/components/responses/NotFound' + '429': + description: Слишком много запросов + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/paid_storage/tasks/{task_id}/download: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Платное хранение + summary: Получить отчёт + description: Возвращает отчёт по ID задания. Максимум 1 запрос в минуту + parameters: + - name: task_id + in: path + required: true + schema: + type: string + example: 06e06887-9d9f-491f-b16a-bb1766fcb8d2 + description: | + ID задания на генерацию + responses: + '200': + description: Отчёт + content: + application/json: + schema: + $ref: '#/components/schemas/ResponsePaidStorage' + example: + - date: '2023-10-01' + logWarehouseCoef: 1 + officeId: 507 + warehouse: Коледино + warehouseCoef: 1.7 + giId: 123456 + chrtId: 1234567 + size: '0' + barcode: '' + subject: Маски одноразовые + brand: 1000 Каталог + vendorCode: '567383' + nmId: 1234567 + volume: 12 + calcType: 'короба: без габаритов' + warehousePrice: 7.65 + barcodesCount: 1 + palletPlaceCode: 0 + palletCount: 0 + originalDate: '2023-03-01' + loyaltyDiscount: 10 + tariffFixDate: '2023-10-01' + tariffLowerDate: '2023-11-01' + '400': + $ref: '#/components/responses/Response400' + '404': + $ref: '#/components/responses/NotFound' + '429': + description: Слишком много запросов + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/analytics/acceptance-report: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Платная приёмка + summary: Получить отчёт + description: | + Возвращает даты и стоимость приёмки. Можно получить отчёт максимум за 31 день. + + Максимум 1 запрос в минуту + parameters: + - $ref: '#/components/parameters/DateFrom' + - $ref: '#/components/parameters/DateTo' + responses: + '200': + $ref: '#/components/responses/SuccessReceivingResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + examples: + MissingDateTimeFrom: + $ref: '#/components/examples/MissingDateTimeFrom' + MissingDateTimeTo: + $ref: '#/components/examples/MissingDateTimeTo' + IncorrectDateTimeFrom: + $ref: '#/components/examples/IncorrectDateTimeFrom' + IncorrectDateTimeTo: + $ref: '#/components/examples/IncorrectDateTimeTo' + DateRangeExceeded: + $ref: '#/components/examples/DateRangeExceeded' + DateRanges: + $ref: '#/components/examples/DateRanges' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInternalResponse' + /api/v1/analytics/antifraud-details: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Отчёты по удержаниям + summary: Самовыкупы + description: | + Возвращает отчёт по удержаниям за самовыкупы. Отчёт формируется каждую неделю по средам, до 7:00 по московскому времени, и содержит данные за одну неделю. Также можно получить отчёт за всё время с августа 2023. +

+ Удержание за самовыкуп — это 30% от стоимости товаров. Минимальная сумма всех удержаний — 100 000 ₽, если за неделю в ПВЗ привезли больше ваших товаров, чем на 100 000 ₽. +

+ Максимум 10 запросов за 100 минут. + parameters: + - $ref: '#/components/parameters/Date' + responses: + '200': + $ref: '#/components/responses/SuccessTaskResponse' + '400': + description: Неправильный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + example: + errors: + - date year should be greater or equal 2023 + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/analytics/incorrect-attachments: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Отчёты по удержаниям + summary: Подмена товара + description: | + Возвращает отчёт об удержаниях за отправку не тех товаров, пустых коробок или коробок без товара, но с посторонними предметами. В таких случаях удерживается 100% от стоимости заказа. + + Можно получить отчёт максимум за 31 день, доступны данные с июня 2023. + + Максимум 1 запрос в минуту. + parameters: + - $ref: '#/components/parameters/DateFrom' + - $ref: '#/components/parameters/DateTo' + responses: + '200': + $ref: '#/components/responses/SuccessIncorrectProductsResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + examples: + MissingDateTimeFrom: + $ref: '#/components/examples/MissingDateTimeFrom' + MissingDateTimeTo: + $ref: '#/components/examples/MissingDateTimeTo' + IncorrectDateTimeFrom: + $ref: '#/components/examples/IncorrectDateTimeFrom' + IncorrectDateFrom1: + $ref: '#/components/examples/IncorrectDateFrom1' + IncorrectDateTimeTo: + $ref: '#/components/examples/IncorrectDateTimeTo' + DateRangeExceeded: + $ref: '#/components/examples/DateRangeExceeded' + DateRanges: + $ref: '#/components/examples/DateRanges' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/analytics/storage-coefficient: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Отчёты по удержаниям + summary: Коэффициент логистики и хранения + description: | + Возвращает коэффициенты логистики и хранения. Они рассчитываются на неделю (с понедельника по воскресенье). + + Можно получить данные с 31.10.2022. + + **Максимум 1 запрос в минуту.** + + **Как это работает** + + + В начале каждой недели для продавца рассчитывается новый коэффициент логистики и хранения. Затем стоимость логистики и хранения умножается на коэффициент этой недели. + + + **Как считается коэффициент** + + На основе расхождения фактических и заявленных габаритов упаковки товара: + + 1. Измеряем товары.
Работники склада измеряют по одному товару каждого наименования, с учётом упаковки (кроме товаров меньше 2 л). Для расчёта используются измерения за 30 дней до начала текущей недели. + + 2. Считаем коэффициент для товара.
Результаты измерений сравниваются с габаритами из карточки товара. В зависимости от разницы каждому наименованию присваивается коэффициент по товару. + + 3. Считаем коэффициент логистики и хранения.
Коэффициент логистики и хранения — это средний коэффициент по товарам.
+ + Коэффициент логистики и хранения равен 1, если + + * По товарам продавца сделано меньше 10 уникальных измерений. + * Средняя разница в габаритах не больше 10%. + + Для продавцов с коэффициентом 1 стоимость логистики и хранения не увеличится. + parameters: + - $ref: '#/components/parameters/DateBasic' + responses: + '200': + $ref: '#/components/responses/SuccessCoefficientResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + examples: + ErrorEarlytDate: + $ref: '#/components/examples/ErrorEarlytDate' + MissingDate: + $ref: '#/components/examples/MissingDate' + IncorrectDate: + $ref: '#/components/examples/IncorrectDate' + '429': + description: Слишком много запросов + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorInternalResponse' + /api/v1/analytics/goods-labeling: + servers: + - url: https://seller-analytics-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Отчёты по удержаниям + summary: Маркировка товара + description: | + Возвращает отчёт о штрафах за отсутствие обязательной маркировки товаров.
В отчёте представлены фотографии товаров, на которых маркировка отсутствует либо не считывается.
Можно получить данные максимум за 31 день, начиная с марта 2024.
Максимум 10 запросов за 10 минут + parameters: + - $ref: '#/components/parameters/DateFromGoodsLabeling' + - $ref: '#/components/parameters/DateToGoodsLabeling' + responses: + '200': + $ref: '#/components/responses/SuccessGoodsLabelingResponse' + '400': + description: Некорректный запрос + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + examples: + MissingDateTimeFrom: + $ref: '#/components/examples/MissingDateTimeFrom' + MissingDateTimeTo: + $ref: '#/components/examples/MissingDateTimeTo' + IncorrectDateTimeFrom: + $ref: '#/components/examples/IncorrectDateTimeFrom' + IncorrectDateTimeTo: + $ref: '#/components/examples/IncorrectDateTimeTo' + DateRangeExceeded: + $ref: '#/components/examples/DateRangeExceeded' + DateRanges: + $ref: '#/components/examples/DateRanges' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + description: Слишком много запросов + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/analytics/characteristics-change: + get: + servers: + - url: https://seller-analytics-api.wildberries.ru + security: + - HeaderApiKey: [] + tags: + - Отчёты по удержаниям + summary: Смена характеристик + description: | + Возвращает отчёт об удержаниях за смену характеристик товара. Если товары после приёмки не соответствуют заявленным цветам и размерам, и на складе их перемаркировали с правильными характеристиками, по таким товарам назначается штраф.
Можно получить отчёт максимум за 31 день, доступны данные с 28 декабря 2021.
Максимум 10 запросов за 10 минут + parameters: + - in: query + name: dateFrom + required: true + description: Начало отчётного периода, `ГГГГ-ММ-ДД` + schema: + type: string + format: date + example: {} + - in: query + name: dateTo + required: true + description: Конец отчётного периода, `ГГГГ-ММ-ДД` + schema: + type: string + format: date + example: {} + responses: + '200': + $ref: '#/components/responses/SuccessCharacteristicsTaskResponse' + '400': + $ref: '#/components/responses/400BadRequestResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + description: Слишком много запросов + '500': + $ref: '#/components/responses/InternalServerError' + /adv/v1/save-ad: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Создать автоматическую кампанию + description: | + Создают автоматическую кампанию.
+ Максимум 1 запрос в 20 секунд. + tags: + - Продвижение + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + type: + description: | +
+
Тип автоматической кампании:
+
8 +
+ type: integer + example: 8 + name: + description: Название кампании (max. 128 символов) + type: string + example: Парашюты + subjectId: + description: | + ID предмета, для которого создается кампания.
+ Существующие у продавца идентификаторы можно получить методом из раздела "Контент / Просмотр" - "Список НМ", поле ответа - `objectID`. + type: integer + example: 270 + sum: + description: Сумма пополнения + type: integer + example: 500 + btype: + description: | +
+
Tип списания.
+
0 - Счёт
+
1 - Баланс
+
3 - Бонусы
+
+ type: integer + example: 1 + on_pause: + description: | +
+
После создания кампания:
+
+
+
true - будет на паузе.
+
Запуск кампании будет доступен через 3 минуты после создания кампании.
+
+
+
false - будет сразу запущена
+
+ type: boolean + example: true + nms: + description: | + Массив артикулов WB.
+ Максимум 100 артикулов. + type: array + items: + type: integer + cpm: + description: | + Ставка.
+ Если будет указана ставка меньше допустимого размера, то автоматически установится ставка минимально допустимого размера. + type: integer + example: + type: 8 + name: Парашюты + subjectId: 270 + sum: 500 + btype: 1 + on_pause: true + nms: + - 9178363 + - 9178364 + cpm: 10 + responses: + '200': + description: '' + content: + application/json: + schema: + description: ID созданной кампании + type: string + example: '9008917' + '400': + description: Неверная форма запроса + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + IncorrectId: + summary: '' + description: '' + value: + error: некорректный ID предмета + BaseBudget500: + value: + error: базовый бюджет должен быть больше 500р + InvalidWriteOffType: + value: + error: некорректный тип списания + DepositAmount50: + value: + error: Сумма пополнения должна быть кратна 50р + InsufficientFundsInAccount: + value: + error: недостаточно средств на счете + IncorrectCompanyName: + value: + error: Некорректное название кампании + NoProductsSelectedCategory: + value: + error: Товары выбранной категории не в наличии + PlacementIsNotPossible: + value: + error: размещение невозможно + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: '' + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + ReceivingRecommendationsOnMainPage: + value: + error: Ошибка получения размещения в рекомендациях на главной + NotGetSupplierBalance: + value: + error: не удалось получить баланс поставщика + CreatingSinglePlacement: + value: + error: Ошибка создания единственного размещения + ReceivingInProductCard: + value: + error: Ошибка получения размещения в карточке товара + GettingCpmCalculation: + value: + error: Ошибка получения расчета ставок + SavingPlacementInCard: + value: + error: Ошибка сохранения размещения в карточке + SavingPlacementInRecommend: + value: + error: Ошибка сохранения размещения в рекомендациях + FailedPutCampaignInCache: + value: + error: не удалось положить кампанию в кеш + /adv/v2/seacat/save-ad: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: "Создать кампанию Поиск\_+\_Каталог" + description: "Создаёт кампанию Поиск\_+\_Каталог.
\nМаксимум 5 запросов в\_минуту\n" + tags: + - Продвижение + requestBody: + content: + application/json: + schema: + type: object + required: + - nms + properties: + campaignName: + description: Название кампании + type: string + nms: + type: array + description: | + Номенклатуры для кампании. Доступные номенклатуры можно получить с помощью метода [Номенклатуры для кампаний](./#tag/Slovari/paths/~1adv~1v2~1supplier~1nms/post). Максимум 50 товаров (`nm`) + items: + type: integer + description: Артикул Wildberries (`nmId`) + example: + name: Телефоны + nms: + - 146168367 + - 200425104 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: integer + description: ID кампании + example: 1234567 + '400': + description: Неправильный запрос + content: + application/json: + schema: + type: string + example: Нет доступных категорий для рк. Создайте новую кампанию для попадания в текущие категории + '401': + description: Пользователь не авторизован + '429': + description: Слишком много запросов + /adv/v0/delete: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Удаление кампании + description: | + Метод позволяет удалять кампании в статусе 4 - готова к запуску.
+
Допускается 5 запросов в секунду.
+ После удаления кампания некоторое время будет находиться в -1 статусе.
+ Полное удаление кампании занимает от 3 до 10 минут. + tags: + - Продвижение + parameters: + - name: id + in: query + description: ID кампании + schema: + type: integer + required: true + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + ResponseInvalidCampaignID: + $ref: '#/components/examples/ResponseInvalidCampaignID' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/promotion/count: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Списки кампаний + description: | + Метод позволяет получать списки кампаний, сгруппированных по типу и статусу, с информацией о дате последнего изменения кампании. +
+ Допускается 5 запросов в секунду. + tags: + - Продвижение + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + adverts: + type: array + description: Данные по кампаниям + items: + type: object + properties: + type: + description: Тип кампании + type: integer + status: + description: Статус кампании + type: integer + count: + description: Количество кампаний + type: integer + advert_list: + description: Список кампаний + type: array + items: + type: object + properties: + advertId: + description: ID кампании + type: integer + changeTime: + description: Дата и время последнего изменения кампании + type: string + format: date-time + example: + adverts: + - type: 4 + status: 8 + count: 3 + advert_list: + - advertId: 6485174 + changeTime: '2023-05-10T12:12:52.676254+03:00' + - advertId: 6500443 + changeTime: '2023-05-10T17:08:46.370656+03:00' + - advertId: 7936341 + changeTime: '2023-07-12T15:51:08.367478+03:00' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/promotion/adverts: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Информация о кампаниях + description: | + Метод позволяет получать информацию о кампаниях по query параметрам, либо по списку id кампаний. +
+ Допускается 5 запросов в секунду. + tags: + - Продвижение + parameters: + - name: status + in: query + description: | +
+
Статус кампании:
+
-1 - кампания в процессе удаления
+
4 - готова к запуску
+
7 - кампания завершена
+
8 - отказался
+
9 - идут показы
+
11 - кампания на паузе
+
+ Кампания в процессе удаления. Статус означает, что кампания была удалена, и через 3-10 минут она исчезнет из ответа метода. + schema: + type: integer + enum: + - -1 + - 4 + - 7 + - 9 + - 11 + - name: type + in: query + description: | +
+
Тип кампании:
+
4 - кампания в каталоге
+
5 - кампания в карточке товара
+
6 - кампания в поиске
+
7 - кампания в рекомендациях на главной странице
+
8 - автоматическая кампания
+
9 - поиск + каталог
+
+ schema: + type: integer + enum: + - 4 + - 5 + - 6 + - 7 + - name: order + in: query + description: | +
+
Порядок:
+
create (по времени создания кампании)
+
change (по времени последнего изменения кампании)
+
id (по идентификатору кампании)
+
+
Например: /adv/v1/promotion/adverts?type=6&order=change&direction=asc + schema: + type: string + enum: + - create + - change + - id + - name: direction + in: query + description: | +
+
Направление:
+
desc (от большего к меньшему)
+
asc (от меньшего к большему)
+
+
Например: /adv/v1/promotion/adverts?type=6&order=change&direction=asc + schema: + type: string + enum: + - desc + - asc + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: integer + description: 'Список ID кампаний. Максимум 50.

Получить id кампаний можно методом Списки кампаний. ' + example: + - 1234567 + - 63453471 + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ResponseInfoAdvert' + - $ref: '#/components/schemas/ResponseInfoAdvertType8' + - $ref: '#/components/schemas/ResponseInfoAdvertType9' + '204': + description: Кампании не найдены + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectTypeAdv: + $ref: '#/components/examples/IncorrectTypeAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + IncorrectUsingMethods: + $ref: '#/components/examples/IncorrectUsingMethods' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: '' + content: + application/json: + schema: + type: string + examples: + ErrorProcessRequestParam: + $ref: '#/components/examples/ErrorProcessRequestParam' + /adv/v1/advert/stop: + servers: + - url: https://advert-media-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Завершение медиакампании + description: | + Метод завершает медиакампанию - переводит её в статус `7`. +
Допускается максимум 10 запросов в минуту. +
+
Статусы, в которых для медиакампании доступно завершение:
+
1 - черновик
+
3 - отклонено (с возможностью вернуть на модерацию)
+
4 - одобрено
+
5 - запланировано
+
6 - на показах
+
8 - отказался
+
9 - приостановлена продавцом
+
10 - пауза по дневному лимиту
+
11 - пауза по расходу бюджета
+
+ tags: + - Активность медиакампании + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - advert_id + properties: + advert_id: + description: ID медиакампании + type: integer + reason: + description: Описание причины завершения + type: string + example: + advert_id: 123456 + reason: Описание причины завершения + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + CampaignNotFound: + $ref: '#/components/examples/CampaignNotFound' + ChangingStatusToNewIsNotPossible: + $ref: '#/components/examples/ChangingStatusToNewIsNotPossible' + '422': + description: '' + /adv/v1/advert/pause: + servers: + - url: https://advert-media-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Приостановка медиакампании + description: "Метод позволяет приостанавливать медиакампании.
\nПереводит приостанавливаемую медиакампанию в статус `9`.
\nДопускается максимум 10 запросов в минуту.
\n`Важно:` приостановить медиакампанию можно не больше 10 раз в сутки. Сутки отсчитываются с полуночи по Московскому времени.\n
\n
\n
Статусы, в которых для медиакампании доступна приостановка:
\n
4\_— одобрено
\n
5\_— запланировано
\n
6\_— на показах
\n
10\_— пауза по дневному лимиту
\n
11\_— пауза по расходу бюджета
\n
\n" + tags: + - Активность медиакампании + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - advert_id + properties: + advert_id: + description: ID медиакампании + type: integer + reason: + description: Описание причины приостановки + type: string + example: + advert_id: 123456 + reason: Описание причины приостановки + responses: + '200': + description: '' + '422': + description: '' + /adv/v1/advert/start: + servers: + - url: https://advert-media-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Запуск медиакампании + description: | + Метод позволяет запускать приостановленные медиакампании. +
+ После запуска кампания в течение 2-5 минут будет находиться в статусе `4`, после чего статус будет изменён на актуальный, в зависимости от конфигурации медиакампании. +
Допускается максимум 10 запросов в минуту. +
+
Статусы, в которых для медиакампании доступен запуск:
+
9 - приостановлена продавцом
+
11 - пауза по расходу бюджета
+
+ tags: + - Активность медиакампании + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - advert_id + properties: + advert_id: + description: ID медиакампании + type: integer + reason: + description: Описание причины запуска + type: string + example: + advert_id: 123456 + reason: Причина запуска + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + CampaignNotFound: + $ref: '#/components/examples/CampaignNotFound' + ChangingStatusToNewIsNotPossible: + $ref: '#/components/examples/ChangingStatusToNewIsNotPossible' + InsufficientFundsToResumeImpressions: + $ref: '#/components/examples/InsufficientFundsToResumeImpressions' + DisableOrIncreaseDailyLimit: + $ref: '#/components/examples/DisableOrIncreaseDailyLimit' + TopUpCampaignBudget: + $ref: '#/components/examples/TopUpCampaignBudget' + ChooseSourceOfFundsDebiting: + $ref: '#/components/examples/ChooseSourceOfFundsDebiting' + UnknownPaymentType: + $ref: '#/components/examples/UnknownPaymentType' + InsufficientFunds: + $ref: '#/components/examples/InsufficientFunds' + CreatePlacement: + $ref: '#/components/examples/CreatePlacement' + TopUpCampaignBudgetToResumeImpressions2: + $ref: '#/components/examples/TopUpCampaignBudgetToResumeImpressions2' + '422': + description: '' + /adv/v1/item/cpm/change: + servers: + - url: https://advert-media-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Изменение ставки баннера + description: | + Метод позволяет изменять ставку баннера в структуре items.
+ Изменение возможно только для кампаний в одном из статусов: 4, 5, 6, 9, 10, 11. +
Допускается максимум 10 запросов в минуту. + tags: + - Ставки медиакампании + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - advert_id + - item_id + - cpm + properties: + advert_id: + description: ID медиакампании + type: integer + item_id: + description: ID баннера + type: integer + cpm: + description: ' Новая ставка' + type: string + example: + advert_id: 80474 + item_id: 41573 + cpm: 300 + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + ErrorInGettingItems: + $ref: '#/components/examples/ErrorInGettingItems' + TypePlacementShouldBeImpressions: + $ref: '#/components/examples/TypePlacementShouldBeImpressions' + ChangeOnlyPossibleForActiveCampaigns: + $ref: '#/components/examples/ChangeOnlyPossibleForActiveCampaigns' + SmallCpm: + $ref: '#/components/examples/SmallCpm' + '422': + description: '' + /adv/v1/count: + servers: + - url: https://advert-media-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получение медиакампаний + description: | + Метод позволяет получить количество медиакампаний продавца + tags: + - Медиа + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + all: + description: Общее количество медиакампаний всех статусов и типов + type: integer + adverts: + type: object + properties: + type: + description: | +
+
Тип медиакампании:
+
1 - размещение по дням
+
2 - размещение по просмотрам
+
+ type: integer + status: + description: | +
+
Статус медиакампании:
+
1 - черновик
+
2 - модерация +
3 - отклонено (с возможностью вернуть на модерацию)
+
4 - одобрено
+
5 - запланировано
+
6 - на показах
+
7 - завершено
+
8 - отказался
+
9 - приостановлена продавцом
+
10 - пауза по дневному лимиту
+
11 - пауза по расходу бюджета
+
+ type: integer + count: + description: Количество медиакампаний + type: integer + example: + all: 6 + adverts: + - type: 2 + status: 7 + count: 2 + - type: 2 + status: 8 + count: 4 + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /adv/v1/adverts: + servers: + - url: https://advert-media-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список медиакампаний + description: | + Метод позволяет получить список медиакампаний продавца + tags: + - Медиа + parameters: + - name: status + in: query + description: | +
+
Статус медиакампании:
+
1 - черновик
+
2 - модерация +
3 - отклонено (с возможностью вернуть на модерацию)
+
4 - одобрено
+
5 - запланировано
+
6 - на показах
+
7 - завершено
+
8 - отказался
+
9 - приостановлена продавцом
+
10 - пауза по дневному лимиту
+
11 - пауза по расходу бюджета
+
+ schema: + type: integer + example: 1 + - name: type + in: query + description: | +
+
Тип медиакампании:
+
1 - размещение по дням
+
2 - размещение по просмотрам
+
+ schema: + type: integer + example: 1 + - name: limit + in: query + description: Количество кампаний в ответе + schema: + type: integer + example: 1 + - name: offset + in: query + description: Смещение относительно первой медиакампании + schema: + type: integer + example: 1 + - name: order + in: query + description: | +
+
Порядок вывода ответа:
+
create - по времени создания медиакампании
+
id - по идентификатору медиакампании
+
+ schema: + type: string + example: id + - name: direction + in: query + description: | +
+
Порядок сортировки:
+
desc - от большего к меньшему
+
asc - от меньшего к большему
+
+ schema: + type: string + example: desc + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + advertId: + description: Идентификатор медиакампании + type: integer + name: + description: Название медиакампании + type: string + brand: + description: Название бренда + type: string + type: + description: | +
+
Тип медиакампании:
+
1 - размещение по дням
+
2 - размещение по просмотрам
+
+ type: integer + status: + description: | +
+
Статус медиакампании:
+
1 - черновик
+
2 - модерация +
3 - отклонено (с возможностью вернуть на модерацию)
+
4 - одобрено
+
5 - запланировано
+
6 - на показах
+
7 - завершено
+
8 - отказался
+
9 - приостановлена продавцом
+
10 - пауза по дневному лимиту
+
11 - пауза по расходу бюджета
+
+ type: integer + createTime: + description: Время создания медиакампании + type: string + format: date-time + endTime: + description: Время завершения медиакампании (при наличии) + type: string + format: date-time + example: + - advertId: 123456 + name: тост + brand: goosb + type: 2 + status: 8 + createTime: '2023-03-25T20:35:57.116943+03:00' + - advertId: 54321 + name: тест + brand: bobr + type: 1 + status: 7 + createTime: '2023-07-24T16:48:20.935599+03:00' + endTime: '2023-07-25T20:35:50.104978Z' + /adv/v1/advert: + servers: + - url: https://advert-media-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Информация о медиакампании + description: | + Метод позволяет получить информацию об одной медиакампании + tags: + - Медиа + parameters: + - name: id + in: query + description: Идентификатор медиакампании + schema: + type: integer + example: 23569 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + advertId: + description: Идентификатор медиакампании + type: integer + name: + description: Название медиакампании + type: string + brand: + description: Название бренда + type: string + type: + description: | +
+
Тип медиакампании:
+
1 - размещение по дням
+
2 - размещение по просмотрам
+
+ type: integer + status: + description: | +
+
Статус медиакампании:
+
1 - черновик
+
2 - модерация +
3 - отклонено (с возможностью вернуть на модерацию)
+
4 - одобрено
+
5 - запланировано
+
6 - на показах
+
7 - завершено
+
8 - отказался
+
9 - приостановлена продавцом
+
10 - пауза по дневному лимиту
+
11 - пауза по расходу бюджета
+
+ type: integer + createTime: + description: Время создания медиакампании + type: string + format: date-time + extended: + type: object + properties: + reason: + description: Комментарий модератора (при наличии) + nullable: true + type: string + expenses: + description: Затраты + type: integer + from: + description: Начало показов медиакампании + type: string + format: date-time + to: + description: Конец показов медиакампании + type: string + format: date-time + updated_at: + description: Время изменения медиакампании + type: string + format: date-time + price: + description: Стоимость размещения по дням (для типа 1) + type: integer + budget: + description: Остаток бюджета (для типа 2) + type: integer + operation: + description: Источник списания (1 - баланс, 2 - счет) + type: integer + contract_id: + description: Идентификатор контракта (для продавцов на контракте) + type: integer + items: + description: | + Информация о баннере. +
+ Наличие в ответе тех или иных полей зависит от конфигурации медиакампании. + type: array + items: + type: object + properties: + id: + description: ID баннера + type: integer + name: + description: Бренд + type: string + status: + description: Статус (такой же как у медиакампании) + type: integer + place: + description: Позиция на странице размещения + type: integer + budget: + description: Бюджет + type: integer + daily_limit: + description: Дневной лимит (для баннеров по показам) + type: integer + category_name: + description: Название категории размещения + type: string + cpm: + description: Ставка + type: integer + url: + description: URL страницы, на которую попадает пользователь при клике по баннеру + type: string + advert_type: + description: | +
+
Тип продвижения:
+
1 - баннер
+
2 - всплывающее меню
+
3 - почтовая рассылка
+
4 - социальные сети
+
5 - push-уведомления в мобильном приложении
+
+ type: integer + created_at: + description: Дата создания баннера + format: date-time + type: string + updated_at: + description: Дата обновления баннера + format: date-time + type: string + date_from: + description: Дата начала работы баннера + format: date-time + type: string + date_to: + description: Дата завершения работы баннера + format: date-time + type: string + nms: + description: Подборка артикулов WB + type: array + items: + type: integer + bottomText1: + description: Текст под плашкой баннера + type: string + bottomText2: + description: 2-я строка с текстом под плашкой баннера + type: string + message: + description: Текст push-уведомления или рассылки + type: string + additionalSettings: + description: | + Дополнительные настройки. +
+
Формат почтовой рассылки:
+
1 - общий
+
2 - частичный
+
3 - уникальный
+
+
+
Социальная сеть:
+
1 - VKontakte
+
2 - OK (Одноклассники)
+
+ type: integer + receiversCount: + description: Кол-во получателей push-уведомлений + type: integer + subject_id: + description: ID родительской категории товара + type: integer + subject_name: + description: Название родительской категории товара + type: string + action_name: + description: Название акции + type: string + show_hours: + description: Часы показа + type: array + items: + type: object + properties: + From: + description: Начало показа + type: integer + To: + description: Конец показа + type: integer + Erid: + description: Уникальный идентификатор медиакампании для работы с ОРД + type: string + example: + advertId: 23569 + name: Реклама денег принеси + brand: Plank + type: 2 + status: 11 + createTime: '2023-07-19T11:13:41.195138+03:00' + extended: + reason: Для возобновления показов пополните бюджет медиакампании + expenses: 10000 + from: '2023-07-19T12:05:35.847348Z' + to: '2123-07-20T08:14:13.079176+03:00' + updated_at: '2023-07-21T13:25:31.129766+03:00' + price: 0 + budget: 0 + operation: 1 + contract_id: 0 + items: + - id: 68080 + name: Унисон + status: 7 + place: 2 + budget: 650000 + daily_limit: 500 + category_name: Главная + cpm: 351 + url: https://www.wildberries.ru/promotions/ssylka-na-akciyou + advert_type: 1 + created_at: '2023-11-01T15:40:46.86165+03:00' + updated_at: '2023-11-08T23:44:33.248229+03:00' + date_from: '2023-11-01T16:05:22.286002Z' + date_to: '2023-11-09T17:27:32.745869+03:00' + nms: + - 123456 + - 11111111 + bottomText1: string + bottomText2: string + message: string + additionalSettings: 1 + receiversCount: 1 + subject_id: 6945 + subject_name: Бельё + action_name: Распродажа! Создай себе домашний уют! + show_hours: + - From: 7 + To: 8 + Erid: string + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /adv/v1/stats: + servers: + - url: https://advert-media-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Статистика медиакампаний + description: | + Метод позволяет получать статистику медиакампаний. + tags: + - Статистика медиакампании + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RequestWithDate' + - $ref: '#/components/schemas/RequestWithInterval' + examples: + RequestWithDate: + $ref: '#/components/examples/RequestWithDate' + RequestWithInterval: + $ref: '#/components/examples/RequestWithInterval' + RequestWithoutParam: + $ref: '#/components/examples/RequestWithoutParam' + RequestAggregate: + $ref: '#/components/examples/RequestAggregate' + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/StatInterval' + - $ref: '#/components/schemas/StatDate' + - $ref: '#/components/schemas/Stat' + examples: + RespStatMediaInterval: + $ref: '#/components/examples/RespStatMediaInterval' + RespStatMediaDates: + $ref: '#/components/examples/RespStatMediaDates' + RespStatMediaWithoutParam: + $ref: '#/components/examples/RespStatMediaWithoutParam' + RespStatMediaAggregate: + $ref: '#/components/examples/RespStatMediaAggregate' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v0/cpm: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список ставок + description: | + Получение списка ставок для типа размещения. +
Допускается 5 запросов в секунду. +
Данные в ответе отсортированы по величине ставки от большей к меньшей. + tags: + - Ставки + parameters: + - name: type + in: query + description: "Кампания:\n * `4`\_— в каталоге\n * `5`\_— в карточке товара\n * `6`\_— в поиске\n * `7`\_— в рекомендациях на главной странице\n * `9`\_— поиск\_+ каталог\n" + schema: + type: integer + enum: + - 4 + - 5 + - 6 + - 7 + - 9 + required: true + - name: param + in: query + description: | + Параметр запроса, по которому будет получен список ставок активных кампаний. +
Должен быть значением `menuId`, `subjectId` или `setId` в зависимости от типа кампании. Получить их можно методом "Информация о кампании" + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + Cmp: + description: Размер ставки + type: integer + example: 290 + Count: + description: Количество ставок + type: integer + example: 1 + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectParamAdv: + $ref: '#/components/examples/IncorrectParamAdv' + IncorrectType: + $ref: '#/components/examples/IncorrectTypeAdv' + IncorrectSupplierId: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: '' + content: + application/json: + schema: + type: string + examples: + AmountNotChanged: + $ref: '#/components/examples/AmountNotChanged' + RequestBodyProcessErrorAdv: + $ref: '#/components/examples/RequestBodyProcessErrorAdv' + post: + security: + - HeaderApiKey: [] + summary: Изменение ставки у кампании + description: | + Изменение ставки у кампании.
+ Измененная ставка отобразится в информации о кампании в течение трех минут.
+ Допускается 5 запросов в секунду.
+
+ `Важно!` Если устанавливаемая ставка имеет размер меньше допустимого, то в ответ Вы получите статус-код 422 (Размер ставки не изменён).
+ Информация об изменении минимального размера ставки публикуется в разделе Новости, на портале продавцов.
+
+ `Важно!` Принцип заполнения параметров `type`, `instrument`, `param` при изменении ставки для кампании с типом 9 (поиск + каталог): + +
Для `type` указывается значение 9 (всегда). + +
Для `instrument` указывается значение 4 или 6 в зависимости от того, в каталоге или поиске необходимо изменить ставку. + +
Для `param` всегда указывается значение поля id из структуры subject ответа метода "Информация о кампании", вне зависимости от того, в каталоге или поиске изменяется ставка. +

+ `Важно!` Если в кампании Поиск + Каталог доступен только Поиск, то установить ставку в Каталог (`instrument` = 4) не получится. В ответ Вы получите статус-код 422 + tags: + - Ставки + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - advertId + - type + - cpm + - param + properties: + advertId: + description: Идентификатор кампании, где меняется ставка + type: integer + example: 789 + type: + description: | +
+
кампании, где меняется ставка:
+
4 - кампания в каталоге
+
5 - кампания в карточке товара
+
6 - кампания в поиске
+
7 - кампания в рекомендациях на главной странице
+
8 - автоматическая кампания
+
9 - кампания поиск + каталог
+
+ type: integer + enum: + - 5 + - 6 + - 7 + - 8 + - 9 + cpm: + description: Новое значение ставки + type: integer + example: 456 + param: + description: | + Параметр, для которого будет внесено изменение. Является значением `subjectId` (для кампании в поиске и рекомендациях), `setId` (для кампании в карточке товара) или `menuId` (для кампании в каталоге). +
Для автоматической кампании указывать этот параметр не требуется. + type: integer + example: 23 + instrument: + description: тип кампании для изменения ставки в Поиск + Каталог (4 - каталог, 6 - поиск) + type: integer + example: 4 + responses: + '200': + description: Размер ставки изменен + '400': + description: Размер ставки не изменен + content: + application/json: + schema: + type: string + examples: + IncorrectParamAdv: + $ref: '#/components/examples/IncorrectParamAdv' + IncorrectTypeAdv: + $ref: '#/components/examples/IncorrectTypeAdv' + IncorrectCpmAdv: + $ref: '#/components/examples/IncorrectCpmAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: Размер ставки не изменен + content: + application/json: + schema: + type: string + examples: + RequestBodyProcessErrorAdv: + $ref: '#/components/examples/RequestBodyProcessErrorAdv' + AmountNotChanged: + $ref: '#/components/examples/AmountNotChanged' + /adv/v0/allcpm: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Список ставок по типу размещения кампании + description: | + Метод позволяет получить список ставок по типу размещения кампании.
+
Допускается 5 запросов в секунду.
+ С помощью этого метода изменить ставку невозможно.
+ tags: + - Ставки + parameters: + - name: type + in: query + description: "Кампании:\n * `4`\_— в каталоге\n * `5`\_— в карточке товара\n * `6`\_— в поиске\n * `7`\_— в рекомендациях на главной странице\n * `9`\_— поиск\_+ каталог\n" + schema: + type: integer + enum: + - 4 + - 5 + - 6 + - 7 + - 9 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + param: + description: | + Массив параметров запроса, по которым будет получен список ставок активных кампаний: должен быть значением `menuId` (для кампании в каталоге), `subjectId` (для кампании в поиске и рекомендациях) или `setId` (для кампании в карточке товара). + type: array + items: + type: integer + example: + param: + - 699 + - 344 + - 385 + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + param: + description: Значение параметра (param) запроса + type: integer + cpm: + description: Информация о ставке(-ах) + type: array + items: + type: object + properties: + Cpm: + description: Размер ставки + type: integer + Count: + description: Количество ставок + type: integer + example: + - param: 344 + cpm: + - Cpm: 235 + Count: 1 + - param: 385 + cpm: + - Cpm: 187 + Count: 1 + - Cpm: 185 + Count: 2 + - Cpm: 179 + Count: 2 + '400': + description: Неверная форма запроса + content: + application/json: + schema: + type: string + examples: + RequestBodyProcessErrorAdv: + $ref: '#/components/examples/RequestBodyProcessErrorAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v0/start: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Запуск кампании + description: | + Метод позволяет запускать кампании находящиеся в статусах 4 - готова к запуску или 11 - кампания на паузе. +
Допускается 5 запросов в секунду.
+ Для запуска кампании со статусом 11 необходимо наличие у неё пополненного бюджета.
+
+
Чтобы запустить кампанию со статусом 4 необходимо выполнить два условия (поочередность действий значения не имеет):
+
1. После создания кампании в кабинете ВБ. Продвижение необходимо нажать кнопку "Применить изменения".
+
2. Установить бюджет.
+
+ tags: + - Активность кампании + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: Статус изменен + '400': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + StatusNoChangeAdv: + $ref: '#/components/examples/StatusNoChangeAdv' + /adv/v0/pause: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Пауза кампании + description: | + Кампании в статусе "9 - идут показы" - можно поставить на паузу, сделав GET на `/adv/v0/pause?id=***`. +
Допускается 5 запросов в секунду. + tags: + - Активность кампании + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: Статус изменен + '400': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + StatusNoChangeAdv: + $ref: '#/components/examples/StatusNoChangeAdv' + /adv/v0/stop: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Завершение кампании + description: Метод позволяет завершить кампанию, находящуюся в статусе 9 или 11 или 4.
Допускается 5 запросов в секунду. + tags: + - Активность кампании + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: Статус изменен + '400': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + StatusNoChangeAdv: + $ref: '#/components/examples/StatusNoChangeAdv' + /adv/v1/balance: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Баланс + description: | + Метод позволяет получать информацию о счёте, балансе и бонусах продавца.
+ Допускается 1 запрос в секунду. + tags: + - Финансы + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + balance: + description: Счёт, рублей + type: integer + net: + description: Баланс, рублей + type: integer + bonus: + description: Бонусы, рублей + type: integer + example: + balance: 11083 + net: 0 + bonus: 15187 + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/budget: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Бюджет кампании + description: | + Метод позволяет получать информацию о бюджете кампании.
+ Допускается 4 запроса в секунду. + tags: + - Финансы + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + cash: + description: Поле не используется. Значение всегда 0. + type: integer + netting: + description: Поле не используется. Значение всегда 0. + type: integer + total: + description: Бюджет кампании, ₽ + type: integer + example: + cash: 0 + netting: 0 + total: 500 + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + CampaignNotBelongSeller: + $ref: '#/components/examples/CampaignNotBelongSeller' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/budget/deposit: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Пополнение бюджета кампании + description: | + Метод позволяет пополнять бюджет кампании. +
Допускается 1 запрос в секунду. + tags: + - Финансы + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sum: + description: Сумма пополнения (min. 500 ₽) + type: integer + example: 500 + type: + description: | +
+
Тип источника пополнения:
+
0 - Счёт
+
1 - Баланс
+
3 - Бонусы
+
+ type: integer + example: 1 + return: + type: boolean + description: Флаг возврата ответа (`true` - в ответе вернется обновлённый размер бюджета кампании, `false` или не указать параметр вообще - не вернётся.) + responses: + '200': + description: Бюджет пополнен + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ResponseWithReturn' + examples: + ResponseWithReturn: + $ref: '#/components/examples/ResponseWithReturn' + '400': + description: Бюджет не пополнен + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + DepositAmountMultiple50: + description: Сумма пополнения должна быть кратна 50 руб + value: + error: Сумма пополнения должна быть кратна 50 руб + MinimumDepositAmountIs500: + description: Минимальная сумма пополнения 500 рублей + value: + error: Минимальная сумма пополнения 500 рублей + /adv/v1/upd/intervals: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получение месячных интервалов для истории затрат + description: | + Метод позволяет получать массив с датами начала месяца, когда у продавца были расходы. +
Допускается 1 запрос в секунду. + tags: + - Финансы + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: string + format: time-date + example: + - '2023-07-01T00:00:00Z' + - '2023-06-01T00:00:00Z' + - '2023-05-01T00:00:00Z' + - '2023-04-01T00:00:00Z' + - '2023-03-01T00:00:00Z' + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/upd: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получение истории затрат + description: | + Метод позволяет получать историю затрат. +
Допускается 1 запрос в секунду. + tags: + - Финансы + parameters: + - name: from + in: query + description: Начало интервала + schema: + type: string + format: date + example: '2023-07-31' + required: true + - name: to + in: query + description: | + Конец интервала.
+ (Минимальный интервал 1 день, максимальный 31) + schema: + type: string + format: date + example: '2023-08-02' + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + updNum: + description: Номер выставленного документа (при наличии) + type: integer + updTime: + description: Время списания + type: string + format: time-date + updSum: + description: Выставленная сумма + type: integer + advertId: + description: Идентификатор кампании + type: integer + campName: + description: Название кампании + type: string + advertType: + description: Тип кампании + type: integer + paymentType: + description: | +
Источник списания:
Баланс
Бонусы
Счет
+ type: string + advertStatus: + description: | +
+
Статус кампании:
+
4 - готова к запуску
+
7 - завершена
+
8 - отказался
+
9 - активна
+
11 - приостановлена
+
+ type: integer + example: + - updNum: 0 + updTime: '2023-07-31T12:12:54.060536+03:00' + updSum: 24 + advertId: 3355881 + campName: лук лучок + advertType: 6 + paymentType: Баланс + advertStatus: 9 + - updNum: 0 + updTime: null + updSum: 107 + advertId: 3366882 + campName: золотая луковица + advertType: 8 + paymentType: Счет + advertStatus: 11 + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/payments: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получение истории пополнений счета + description: | + Метод позволяет получать историю пополнений счёта. +
Допускается 1 запрос в секунду. + tags: + - Финансы + parameters: + - name: from + in: query + description: Начало интервала + schema: + type: string + format: date + example: '2023-07-31' + - name: to + in: query + description: | + Конец интервала.
+ (Минимальный интервал 1 день, максимальный 31) + schema: + type: string + format: date + example: '2023-08-02' + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: Идентификатор платежа + type: integer + date: + description: Дата платежа + type: string + format: time-date + sum: + description: Сумма платежа + type: integer + type: + description: | +
+
Тип источника списания:
+
0 - Счёт
+
1 - Баланс
+
3 - Картой
+
+ type: integer + statusId: + description: | +
+
Статус:
+
0 - ошибка
+
1 - обработано
+
+ type: integer + cardStatus: + description: | +
+
Статус операции(при оплате картой):
+
success - успех
+
fail - неуспех
+
pending - в ожидании ответа
+
unknown - неизвестно
+
+ type: string + example: + - id: 1036666 + date: '2022-02-04T09:06:47.985843Z' + sum: 600 + type: 0 + statusId: 1 + cardStatus: '' + - id: 55261296 + date: '2023-04-13T10:07:42' + sum: 1500 + type: 3 + statusId: 1 + cardStatus: succeeded + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v0/params/subject: + servers: + - url: https://advert-api.Wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Словарь значений параметра subjectId + description: | + Метод позволяет получить список значений параметра subjectId.
+ Допускается 5 запросов в секунду. + tags: + - Словари + parameters: + - name: id + in: query + description: | + Идентификатор предметной группы, для которой создана кампания (для кампаний в поиске и рекомендациях).
+ Принимает значение параметра `subjectId` из кампании.
+ При пустом параметре вернётся весь список существующих значений. + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: Значение для параметра `subjectId` + type: integer + name: + description: Название предметной группы, для которой создана кампания + type: string + example: + - id: 699 + name: Гелевые полоски + - id: 12345 + name: Гелевые кружочки + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v0/params/menu: + servers: + - url: https://advert-api.Wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Словарь значений параметра menuId + description: Метод позволяет получить список значений параметра menuId.
Допускается 5 запросов в секунду. + tags: + - Словари + parameters: + - name: id + in: query + description: | + Идентификатор меню, где размещается кампания (для кампаний в каталоге).
+ Принимает значение параметра `menuId` из кампании.
+ При пустом параметре вернётся весь список существующих значений. + schema: + type: integer + example: 8967 + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: Значение для параметра `menuId` + type: integer + name: + description: Название меню, где размещается кампания + type: string + example: + - id: 8967 + name: Уход за кожей + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v0/params/set: + servers: + - url: https://advert-api.Wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Словарь значений параметра setId + description: | + Метод позволяет получить список значений параметра setId.
+ Допускается 5 запросов в секунду. + tags: + - Словари + parameters: + - name: id + in: query + description: | + Идентификатор сочетания предмета и пола (для кампаний в карточке товара).
+ Принимает значение параметра `setId` из кампании.
+ При пустом параметре вернётся весь список существующих значений. + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: Значение для параметра `setId` + type: integer + name: + description: Сочетание предмета и пола + type: string + example: + - id: 477 + name: Подушки для малышей + - id: 744 + name: Хлопушки для малышей + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/supplier/subjects: + servers: + - url: https://advert-api.Wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Предметы для кампаний + description: | + Возвращает предметы, номенклатуры из которых можно добавить в кампании. Максимум 1 запрос в 12 секунд. + tags: + - Словари + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: ID предмета + type: integer + name: + description: Предмет + type: string + count: + description: Количество Артикулов Wildberries (`nmId`) с таким предметом. + type: integer + example: + - name: 3D очки + id: 2560 + count: 1899 + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '404': + description: '' + /adv/v2/supplier/nms: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Номенклатуры для кампаний + description: "Возвращает номенклатуры, которые можно добавить в кампании.
\n\nМаксимум 5 запросов в\_минуту\n" + tags: + - Словари + requestBody: + description: ID предметов, для которых нужно получить номенклатуры + content: + application/json: + schema: + type: array + items: + type: integer + example: + - 123 + - 456 + - 765 + - 321 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: array + description: Номенклатуры для кампаний + items: + type: object + properties: + title: + type: string + description: Название товара + example: Плед + nm: + type: integer + description: Артикул Wildberries (`nmId`) + example: 146168367 + subjectId: + type: integer + description: ID предмета + example: 765 + '400': + description: Неправильный запрос + content: + application/json: + schema: + type: string + example: Ошибка обработки тела запроса + '401': + description: Пользователь не авторизован + '429': + description: Слишком много запросов + /adv/v2/fullstats: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Статистика кампаний + description: | + Возвращает статистику кампаний. +
Максимум 1 запрос в минуту. +
Данные вернутся для кампаний в статусе 7, 9 и 11. +
Важно. В запросе можно передавать либо параметр `dates` либо параметр `interval`, но не оба.
Можно отправить запрос только с ID кампании. При этом вернутся данные за последние сутки, но не за весь период существования кампании. +
+ tags: + - Статистика + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RequestWithDate' + - $ref: '#/components/schemas/RequestWithInterval' + - $ref: '#/components/schemas/RequestWithCampaignID' + examples: + RequestWithDate: + $ref: '#/components/examples/RequestWithDate' + RequestWithInterval: + $ref: '#/components/examples/RequestWithInterval' + RequestWithCampaignID: + $ref: '#/components/examples/RequestWithoutIDParam' + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ResponseWithDate' + - $ref: '#/components/schemas/ResponseWithInterval' + examples: + ResponseWithDate: + $ref: '#/components/examples/ResponseWithDate' + ResponseWithInterval: + $ref: '#/components/examples/ResponseWithInterval' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + responseIncorrectBeginDate: + $ref: '#/components/examples/responseIncorrectBeginDate' + responseIncorrectEndDate: + $ref: '#/components/examples/responseIncorrectEndDate' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/auto/stat: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Статистика автоматической кампании + description: | + Метод позволяет получать краткую статистику по автоматической кампании.
+ Допускается 1 запрос в 6 секунд. + tags: + - Статистика + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: number + ctr: + description: | + CTR (Click-Through Rate) — показатель кликабельности.
+ Отношение числа кликов к количеству показов. Выражается в процентах. + type: number + cpc: + description: CPC(от англ. cost per click — цена за клик) — это цена клика по продвигаемому товару. + type: number + spend: + description: Затраты, ₽. + type: integer + example: + views: 68 + clicks: 3 + ctr: 4.41 + cpc: 1.18 + spend: 3 + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + AvailableOnlyForAutoCampaign: + $ref: '#/components/examples/AvailableOnlyForAutoCampaign' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v2/auto/stat-words: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Статистика автоматической кампании по кластерам фраз + description: "

Возвращает кластеры ключевых фраз (наборы похожих), по которым показывались товары в кампании, и количество показов по ним. В ответ метода попадают только те фразы, по которым товары показывались хотя бы один раз.

Информация обновляется раз в\_15\_минут.

Максимум\_— 4 запроса секунду.

\n" + tags: + - Статистика + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + excluded: + description: "Исключения (минус-фразы) для товаров из кампании. Это фразы, которые вы задали с\_помощью метода Установка/удаление минус-фраз или в личном кабинете, в настройках кампании" + type: array + items: + type: string + example: + - Samsung + - Xiaomi + clusters: + description: Кластеры ключевых фраз + type: array + items: + type: object + properties: + cluster: + description: "Кластер\_— набор похожих ключевых фраз" + type: string + example: Телефон + count: + description: Сколько раз товары показывались по всем фразам из кластера + type: integer + example: 100 + keywords: + description: Ключевые фразы из кластера, по которым товары показывались хотя бы один раз + type: array + items: + type: string + example: + - Телефон + - Мобильный телефон + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + AvailableOnlyForAutoCampaign: + $ref: '#/components/examples/AvailableOnlyForAutoCampaign' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v2/auto/daily-words: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Детальная статистика автоматической кампании по ключевым фразам + description: "

Возвращает статистику по ключевым фразам за каждый день, когда кампания была активна.

Информация обновляется раз в\_15\_минут.

Максимум\_— 4 запроса секунду.

\n" + tags: + - Статистика + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + date: + description: Дата, когда пользователи просматривали товары из кампании + type: string + example: '2024-01-23T03:00:00+03:00' + stat: + description: Статистика по ключевым фразам + type: array + items: + type: object + properties: + keyword: + type: string + description: Ключевая фраза + example: Смартфон + views: + type: integer + description: Количество просмотров + example: 100 + clicks: + type: integer + description: Количество кликов + example: 500 + ctr: + type: number + description: "Click-Through Rate, отношение количества кликов к количеству показов,\_%" + example: 0.5 + sum: + type: number + description: Затраты, ₽ + example: 1000 + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + AvailableOnlyForAutoCampaign: + $ref: '#/components/examples/AvailableOnlyForAutoCampaign' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/stat/words: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Статистика поисковой кампании по ключевым фразам + description: | + Метод позволяет получать статистику поисковой кампании по ключевым фразам.
+ Допускается максимум 4 запроса в секунду.
+ Информация обновляется примерно каждые полчаса.
+ tags: + - Статистика + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + words: + description: Блок информации по ключевым фразам + type: object + properties: + phrase: + description: Фразовое соответствие (минус фразы) + type: array + items: + type: string + strong: + description: Точное соответствие (минус фразы) + type: array + items: + type: string + excluded: + description: Минус фразы из поиска + type: array + items: + type: string + pluse: + description: Фиксированные фразы + type: array + items: + type: string + keywords: + description: Блок со статистикой по ключевым фразам + type: array + items: + type: object + properties: + keyword: + description: Ключевая фраза + type: string + count: + description: Количество просмотров по ключевой фразе + type: integer + fixed: + description: | + Фиксированные ключевые фразы (`true` - включены, `false` - выключены) + type: boolean + stat: + description: | + Массив информации по статистике.
+ Первый элемент массива с `keyword: "Всего по кампании"` содержит суммарную информацию по всем ключевым фразам.
+ Каждый следующий элемент массива содержит информацию по отдельной ключевой фразе.
+ Отображается 60 ключевых фраз с наибольшим количеством просмотров. + type: array + items: + type: object + properties: + advertId: + description: Идентификатор кампании в системе Wildberries + type: integer + keyword: + description: Ключевая фраза + type: string + advertName: + description: Поле перманентно отключено + type: string + campaignName: + description: Название кампании + type: string + begin: + description: Дата запуска кампании + type: string + format: date-time + end: + description: Дата завершения кампании + type: string + format: date-time + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + frq: + description: Частота (отношение количества просмотров к количеству уникальных пользователей) + type: integer + ctr: + description: | + Показатель кликабельности (отношение числа кликов к количеству показов. Выражается в процентах). + type: number + cpc: + description: Стоимость клика, ₽ + type: number + duration: + description: Длительность кампании, в секундах + type: integer + sum: + description: Затраты, ₽. + type: number + example: + words: + phrase: [] + strong: [] + excluded: [] + pluse: + - детское постельное белье для мальчика 1.5 + keywords: + - keyword: постельное белье 1.5 + count: 772 + fixed: true + stat: + - advertId: 7703570 + keyword: Всего по кампании + advertName: '' + campaignName: Бельё + begin: '2023-07-03T15:15:38.287441+03:00' + end: '2023-07-03T15:15:38.287441+03:00' + views: 1846 + clicks: 73 + frq: 1.03 + ctr: 3.95 + cpc: 7.88 + duration: 769159 + sum: 575.6 + - advertId: 7703570 + keyword: постельное белье 1.5 детское + advertName: '' + campaignName: Бельё + begin: '2023-07-03T15:15:38.287441+03:00' + end: '2023-07-03T15:15:38.287441+03:00' + views: 1846 + clicks: 73 + frq: 1.03 + ctr: 3.95 + cpc: 7.88 + duration: 769159 + sum: 575.6 + '400': + description: '' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/seacat/stat: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Статистика кампаний Поиск + Каталог + description: | + Метод позволяет получать статистику по кампаниям Поиск + Каталог.
+ Допускается 2 запроса в секунду. + tags: + - Статистика + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + totalViews: + description: Суммарное количество просмотров + type: integer + totalClicks: + description: Суммарное количество кликов + type: integer + totalOrders: + description: Суммарное количество заказов + type: integer + totalSum: + description: Суммарные затраты, ₽. + type: integer + dates: + description: Блок статистики + type: array + items: + type: object + properties: + date: + description: Дата + type: string + format: date + search: + description: Поиск + type: object + properties: + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + orders: + description: Количество заказов + type: integer + sum: + description: Затраты, ₽. + type: integer + catalog: + description: Каталог + type: object + properties: + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + orders: + description: Количество заказов + type: integer + sum: + description: Затраты, ₽. + type: integer + example: + totalViews: 1117 + totalClicks: 27 + totalOrders: 0 + totalSum: 460 + dates: + - date: '2023-07-10' + search: + views: 1117 + clicks: 27 + orders: 0 + sum: 460 + catalog: + views: 6 + clicks: 0 + orders: 0 + sum: 0 + '400': + description: '' + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + AvailableOnlyActiveCampaign: + $ref: '#/components/examples/AvailableOnlyActiveCampaign' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v0/rename: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Переименование кампании + description: Метод позволяет переименовать кампанию.
Допускается 5 запросов в секунду. + tags: + - Управление общими параметрами кампании + requestBody: + content: + application/json: + schema: + type: object + required: + - advertId + - name + properties: + advertId: + type: integer + description: Идентификатор кампании, у которой меняется название + name: + type: string + description: Новое название (максимум 100 символов) + example: + advertId: 2233344 + name: newnmame + responses: + '200': + description: Статус изменен + '400': + description: Неверная форма запроса + content: + application/json: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectName: + $ref: '#/components/examples/IncorrectName' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: '' + content: + application/json: + schema: + type: string + examples: + RequestBodyProcessErrorAdv: + $ref: '#/components/examples/RequestBodyProcessErrorAdv' + CompanyNameChangeErr: + $ref: '#/components/examples/CompanyNameChangeErr' + /adv/v1/search/supplier-subjects: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список предметов для кампании в поиске + description: | + Метод позволяет получать список предметов продавца и количество артикулов WB по каждому предмету. + +
Допускается 1 запрос в 12 секунд. + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: Идентификатор предмета + type: integer + name: + description: Название предмета + type: string + nmsCount: + description: Количество артикулов WB с этим предметом + type: integer + example: + - id: 342 + name: Обложки + nmsCount: 1 + - id: 106 + name: Тапочки + nmsCount: 2 + - id: 219 + name: Футболки-поло + nmsCount: 2 + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/search/supplier-products: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список товаров для кампании в поиске + description: | + Метод возвращает список товаров, которые есть в наличии. Эти товары можно добавить в кампанию. +
+ Допускается 1 запрос в 12 секунд.
+ Чтобы получить все товары, которые есть в наличии, необходимо отправить запрос без параметра subject. + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: subject + in: query + description: ID предмета + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + type: object + properties: + nm: + type: integer + description: Артикул WB. + name: + description: Наименование товара. + subject: + type: object + description: Данные предмета. + properties: + id: + type: integer + description: ID предмета. + name: + type: string + description: Название предмета. + brand: + type: string + description: Бренд. + kind: + type: object + description: Данные пола. + properties: + id: + type: integer + description: ID пола. + name: + type: string + description: Название пола. + example: + - nm: 1234567 + name: Обложка на студенческий + subject: + id: 342 + name: Обложки + brand: Бренд + kind: + id: 2 + name: Для женщин + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + InvalidSubjectForm: + $ref: '#/components/examples/InvalidSubjectForm' + CouldNotGetDataForSearchBar: + $ref: '#/components/examples/CouldNotGetDataForSearchBar' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v0/active: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Изменение активности предметной группы + description: "Изменяет активность предметной группы. Только для кампаний:\n * в\_поиске и поиск\_+ каталог;\n * со\_статусами Идут показы\_(`9`) и Кампания на\_паузе\_(`11`).\nМаксимум 5 запросов в секунду.\n" + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234 + required: true + - name: subjectId + in: query + description: Идентификатор предметной группы, для которой меняется активность + schema: + type: integer + example: 1234 + required: true + - name: status + in: query + description: Новое состояние (`true` - сделать группу активной или `false` - сделать группу неактивной) + schema: + type: string + example: 'true' + required: true + responses: + '200': + description: Статус изменен + '400': + description: Статус не изменен + content: + application/json: + schema: + type: string + examples: + IncorrectActiveAdv: + $ref: '#/components/examples/IncorrectActiveAdv' + IncorrectStatusAdv: + $ref: '#/components/examples/IncorrectStatusAdv' + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSubjectID: + $ref: '#/components/examples/IncorrectSubjectID' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '422': + description: Размер ставки не изменен + content: + application/json: + schema: + type: string + examples: + ActivitySubjectGroupNotChanged: + $ref: '#/components/examples/ActivitySubjectGroupNotChanged' + /adv/v1/search/set-plus: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Управление активностью фиксированных фраз + description: "Изменяет активность фиксированных фраз. Только для кампаний в\_поиске и поиск\_+ каталог.\n\nМаксимум 1 запрос в 500 миллисекунд.\n" + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + - name: fixed + in: query + description: Новое состояние (`false` - сделать неактивными, `true` - сделать активными) + schema: + type: boolean + responses: + '200': + description: Активность изменена + '400': + description: Активность фиксированных фраз не изменена + content: + application/json: + schema: + type: string + example: Некорректный запрос + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + post: + security: + - HeaderApiKey: [] + summary: Установка/удаление фиксированных фраз + description: "Устанавливает и удаляет фиксированные фразы. Только для кампаний в\_поиске и поиск\_+ каталог.\n\nОтправка пустого массива удаляет все фиксированные фразы и отключает активность фиксированных фраз в кампании.\nМаксимум 1 запрос в 500 миллисекунд.\n" + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + pluse: + description: Список фиксированных фраз (max. 100) + type: array + items: + type: string + example: + pluse: + - Фраза 1 + - Фраза 2 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: array + items: + type: string + example: + - Фраза 1 + - Фраза 2 + '400': + description: Некорректный запрос + content: + application/json: + schema: + type: string + example: 'json: cannot unmarshal number into Go struct field request.pluse of type string' + /adv/v1/search/set-phrase: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Установка/удаление минус-фраз фразового соответствия + description: "Устанавливает и удаляет минус-фразы фразового соответствия. Только для кампаний в\_поиске и поиск\_+ каталог.
\nМаксимально допустимое количество минус-фраз в кампании - 1000 шт.
\nОтправка пустого массива удаляет все минус-фразы фразового соответствия из кампании.\n\nМаксимум 2 запроса в секунду.\n" + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + phrase: + description: Минус-фразы (макс. 1000 шт.) + type: array + items: + type: string + example: + phrase: + - сло + - гу + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + example: Некорректный запрос + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/search/set-strong: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Установка/удаление минус-фраз точного соответствия + description: "Устанавливает и удаляет минус-фразы точного соответствия. Только для кампаний в\_поиске и поиск\_+ каталог.
\nМаксимально допустимое количество минус-фраз в кампании - 1000 шт.
\nОтправка пустого массива удаляет все минус-фразы точного соответствия из кампании.\n\nМаксимум 2 запроса в секунду.\n" + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + strong: + description: Минус-фразы (макс. 1000 шт.) + type: array + items: + type: string + example: + strong: + - стоять + - лопата + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + example: Некорректный запрос + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/search/set-excluded: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Установка/удаление минус-фраз из поиска + description: "Устанавливает и удаляет минус-фразы из поиска. Только для кампаний в\_поиске и поиск\_+ каталог.
\nМаксимально допустимое количество минус-фраз в кампании - 1000 шт.
\nОтправка пустого массива удаляет все минус-фразы из поиска из кампании.\n\nМаксимум 2 запроса в секунду. \n" + tags: + - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + excluded: + description: Минус-фразы (макс. 1000 шт.) + type: array + items: + type: string + example: + excluded: + - что-то синее + - картошечка + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + example: Некорректный запрос + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + /adv/v1/auto/getnmtoadd: + servers: + - url: https://advert-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список номенклатур для автоматической кампании + description: | + Метод позволяет получать список номенклатур, доступных для добавления в кампанию.
+ Допускается 1 запрос в секунду. + tags: + - Управление параметрами автоматических кампаний + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: Список доступных номенклатур + content: + application/json: + schema: + type: array + items: + type: integer + example: + - 1111111111 + - 2222222222 + - 3333333333 + - 4444444444 + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/auto/updatenm: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Изменение списка номенклатур в автоматической кампании + description: | + Метод позволяет добавлять и удалять номенклатуры.
+ Допускается 1 запрос в секунду.
+ `Важно`: Добавить можно только те номенклатуры, которые вернутся в ответе метода "Список номенклатур для автоматической кампании".
+ Удалить единственную номенклатуру из кампании нельзя.
+ Проверки по параметру delete не предусмотрено.
+ Если пришел ответ со статус-кодом 200, а изменений не произошло, то проверьте запрос на соответствие документации. + tags: + - Управление параметрами автоматических кампаний + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + add: + description: Номенклатуры, которые необходимо добавить. + type: array + items: + type: integer + delete: + description: Номенклатуры, которые необходимо удалить. + type: array + items: + type: integer + example: + add: + - 11111111 + - 44444444 + delete: + - 55555555 + responses: + '200': + description: Успешно + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/auto/active: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Управление зонами показов в автоматической кампании + description: | + Метод позволяет изменять активность зон показов.
+ Допускается 1 запрос в секунду.
+ Вы можете осуществлять показы товаров во всех зонах либо выборочно. + tags: + - Управление параметрами автоматических кампаний + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + recom: + description: Рекомендации на главной (`false` - отключены, `true` - включены) + type: boolean + booster: + description: Поиск/Каталог (`false` - отключены, `true` - включены) + type: boolean + carousel: + description: Карточка товара (`false` - отключены, `true` - включены) + type: boolean + responses: + '200': + description: Успешно + '400': + description: '' + content: + application/json: + schema: + type: string + examples: + FailedGetAdvertTools: + $ref: '#/components/examples/FailedGetAdvertTools' + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /adv/v1/auto/set-excluded: + servers: + - url: https://advert-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Установка/удаление минус-фраз для автоматической кампании + description: | + Метод позволяет устанавливать или удалять минус фразы.
+
Допускается 1 запрос в 6 секунд. +
Отправка пустого массива удаляет все минус-фразы из кампании.
+ tags: + - Управление параметрами автоматических кампаний + parameters: + - name: id + in: query + description: Идентификатор кампании + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + excluded: + description: Список фраз (макс. 1000 шт.) + type: array + items: + type: string + examples: + SettingMinusPhrase: + $ref: '#/components/examples/SettingMinusPhrase' + RemovingMinusPhrase: + $ref: '#/components/examples/RemovingMinusPhrase' + responses: + '200': + description: '' + '400': + description: '' + content: + application/json: + schema: + type: string + example: Некорректный запрос + '401': + description: Не авторизован + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvert401' + examples: + EmptyToken: + $ref: '#/components/examples/EmptyToken' + InvalidToken: + $ref: '#/components/examples/InvalidToken' + TokenScopeNotAllowedAdv: + $ref: '#/components/examples/TokenScopeNotAllowedAdv' + '429': + description: Превышен лимит по запросам + content: + application/json: + schema: + $ref: '#/components/schemas/Response429' + /api/v1/ins: + servers: + - url: https://recommend-api.wildberries.ru + - url: https://recommend-api.wb.ru + post: + tags: + - Рекомендации + summary: Добавление рекомендаций + description: | + Метод позволяет добавить рекомендации к товару.
`ВАЖНО!` Если запрос прошел успешно (код ответа 200), а рекомендации не добавилась, то вам необходимо проверить корректность отправленных значений.
На данный момент в методе не предусмотрена валидация значений параметров.
Тщательно проверяйте данные перед отправкой.
Ограничение по запросам: 120 запросов в минуту.

`ВАЖНО!` Если вы получили ответ с кодом 200 и телом вида CrutchSapi1356-65c49a25-7f9798142620 OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. + requestBody: + required: true + content: + application/json: + schema: + type: array + description: список nm товаров и рекомендаций к ним + items: + properties: + nm: + description: Идентификатор товара (`nmId`), к которому добавляется рекомендация + type: integer + recom: + description: Список идентификаторов товаров (`nmId`), которые необходимо добавить в рекомендуемые + type: array + items: + type: integer + minimum: 1 + example: + nm: 1376382 + recom: + - 123456342 + - 789101112 + - 9877654321 + required: + - nm + - recom + responses: + '200': + description: Рекомендации успешно добавлены + '400': + description: Неверный синтаксис запроса + content: + application/json: + schema: + type: string + example: can't parse data from request + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + type: string + /api/v1/del: + servers: + - url: https://recommend-api.wildberries.ru + - url: https://recommend-api.wb.ru + post: + tags: + - Рекомендации + summary: Удаление рекомендаций + description: | + Метод позволяет удалить рекомендации.
`ВАЖНО!` Если запрос прошел успешно (код ответа 200), а рекомендации не удалились, то вам необходимо проверить корректность отправленных значений. На данный момент в методе не предусмотрена валидация значений параметров. Тщательно проверяйте данные перед отправкой.

`ВАЖНО`: Если вы получили ответ с кодом 200 и телом вида CrutchSapi1356-65c49a25-7f9798142620 OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. + requestBody: + required: true + content: + application/json: + schema: + type: array + description: список nm товаров и рекомендаций к ним + items: + type: object + properties: + nm: + description: Идентификатор товара (`nmId`), у которого необходимо удалить рекомендацию + type: integer + recom: + description: Список идентификаторов товаров (`nmId`), которые необходимо удалить из рекомендуемых + type: array + items: + type: integer + minimum: 1 + example: + nm: 1376382 + recom: + - 123456342 + - 789101112 + - 9877654321 + required: + - nm + - recom + responses: + '200': + description: ОК + '400': + description: Неверный синтаксис запроса + content: + application/json: + schema: + type: string + example: can't parse data from request + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + type: string + /api/v1/set: + servers: + - url: https://recommend-api.wildberries.ru + - url: https://recommend-api.wb.ru + post: + tags: + - Рекомендации + summary: Управление рекомендациями + description: | + Метод позволяет добавлять, удалять рекомендации.
Работает по принципу перезаписи, все что указано в recom, ставится взамен того, что было ранее.
Чтобы удалить рекомендации необходимо передать пустой массив recom.

`ВАЖНО`: Если вы получили ответ с кодом 200 и телом вида CrutchSapi1356-65c49a25-7f9798142620 OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. + requestBody: + required: true + content: + application/json: + schema: + type: array + description: список nm товаров и рекомендаций к ним + items: + properties: + nm: + description: Артикул WB (`nmId`), которому передается рекомендация + type: integer + recom: + description: Список артикулов WB (`nmId`), которые необходимо передать в рекомендуемые. + type: array + items: + type: integer + minimum: 1 + example: + nm: 1376382 + recom: + - 123456342 + - 789101112 + - 9877654321 + required: + - nm + - recom + responses: + '200': + description: Успешно + '400': + description: Неверный синтаксис запроса + content: + application/json: + schema: + type: string + example: can't parse data from request + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '500': + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + type: string + /api/v1/list: + servers: + - url: https://recommend-api.wildberries.ru + - url: https://recommend-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Список рекомендаций + description: | + Метод позволяет получить список рекомендаций по нескольким товарам.

`ВАЖНО`: Если вы получили ошибку с кодом 200 и сообщением вида CrutchSapi1356-65c49a25-7f9798142620-UKfmVPyPcik6d OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. + tags: + - Рекомендации + parameters: + - name: limit + in: header + schema: + type: integer + example: 123 + description: Ограничение количества рекомендаций в ответе. + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: integer + description: Массив с артикулами WB. + example: + - 111111111 + - 222222222 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + nm: + description: Артикул WB, по которому запрошены рекомендации. + type: integer + list: + description: Список рекомендаций + type: array + items: + type: integer + example: + data: + - nm: 111111111 + list: + - 333333333 + - 444444444 + - 555555555 + - nm: 222222222 + list: + - 777777777 + - 666666666 + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /api/v1/questions/count-unanswered: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Неотвеченные вопросы + description: Метод позволяет получить количество неотвеченных вопросов за сегодня и за всё время. + tags: + - Вопросы + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Количество неотвеченных вопросов + example: 24 + countUnansweredToday: + type: integer + description: Количество неотвеченных вопросов за сегодня + example: 0 + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /api/v1/new-feedbacks-questions: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Непросмотренные отзывы и вопросы + description: Метод отображает информацию о наличии у продавца непросмотренных отзывов и вопросов. + tags: + - Вопросы + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + hasNewQuestions: + type: boolean + description: Есть ли непросмотренные вопросы (`true` есть, `false` нет) + example: true + hasNewFeedbacks: + type: boolean + description: Есть ли непросмотренные отзывы (`true` есть, `false` нет) + example: false + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/questions/products/rating: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Часто спрашиваемые товары + description: Метод позволяет получить товары, про которые чаще всего спрашивают. + tags: + - Вопросы + parameters: + - name: size + in: query + description: Количество запрашиваемых товаров (max. 100) + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + products: + description: Массив структур товаров + type: array + items: + type: object + properties: + nmId: + type: integer + description: Артикул WB + example: 21573649 + imtId: + type: integer + description: Идентификатор карточки товара + example: 15384080 + productName: + type: string + description: Название товара + example: Чехол для телефона iPhone 11 + brandName: + type: string + description: Бренд товара + example: Case + questionsCount: + type: string + description: Количество вопросов + example: 11 + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/questions: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список вопросов + description: | + Метод позволяет получить список вопросов по заданным параметрам с пагинацией и сортировкой.
За один запрос можно получить 10 000 вопросов, максимум. + tags: + - Вопросы + parameters: + - name: isAnswered + in: query + description: | + Отвеченные вопросы (`true`) или неотвеченные вопросы(`false`) + schema: + type: boolean + required: true + - name: nmId + in: query + description: Артикул WB + schema: + type: integer + - name: take + in: query + description: | + Количество запрашиваемых вопросов (максимально допустимое значение для параметра - 10 000, при этом сумма значений параметров `take` и `skip` не должна превышать 10 000) + schema: + type: integer + required: true + - name: skip + in: query + description: | + Количество вопросов для пропуска (максимально допустимое значение для параметра - 10 000, при этом сумма значений параметров `take` и `skip` не должна превышать 10 000) + schema: + type: integer + required: true + - name: order + in: query + description: Сортировка вопросов по дате (`dateAsc`/`dateDesc`) + schema: + type: string + - name: dateFrom + in: query + description: Дата начала периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + - name: dateTo + in: query + description: Дата конца периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Количество необработанных вопросов + countArchive: + type: integer + description: Количество обработанных вопросов + questions: + description: Массив структур вопросов + type: array + items: + type: object + properties: + id: + type: string + description: id вопроса + text: + type: string + description: Текст вопроса + createdDate: + type: string + format: date-time + description: Дата и время создания вопроса + state: + type: string + description: | + Статус вопроса: + - `none` - вопрос отклонён продавцом (такой вопрос не отображается на портале покупателей) + - `wbRu` - ответ предоставлен, вопрос отображается на сайте покупателей + - `suppliersPortalSynch` - новый вопрос + answer: + description: Структура ответа + type: object + properties: + text: + type: string + description: Текст ответа + editable: + type: boolean + description: Можно ли отредактировать ответ (`false` - нельзя, `true` - можно) + createDate: + type: string + format: date-time + description: Дата и время создания ответа + productDetails: + type: object + description: Структура товара + properties: + nmId: + type: integer + description: Артикул WB + imtId: + type: integer + description: Идентификатор карточки товара + productName: + type: string + description: Название товара + supplierArticle: + type: string + description: Артикул продавца + supplierName: + type: string + description: Имя продавца + brandName: + type: string + description: Название бренда + wasViewed: + type: boolean + description: Просмотрен ли вопрос + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + countUnanswered: 24 + countArchive: 508 + questions: + - id: 2ncBtX4B9I0UHoornoqG + text: Текст вопроса + createdDate: '2022-02-01T11:18:08.769513469Z' + state: suppliersPortalSynch + answer: null + productDetails: + imtId: 11157265 + nmId: 14917842 + productName: Кофе + supplierArticle: '123401' + supplierName: ' ГП Реклама и услуги' + brandName: Nescafe + wasViewed: false + isOverdue: true + error: false + errorText: '' + additionalErrors: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr403' + patch: + security: + - HeaderApiKey: [] + summary: Работа с вопросами + description: | + В зависимости от тела запроса можно: + - Просмотреть вопрос. + - Отклонить вопрос. + - Ответить на вопрос или отредактировать ответ. + + Отредактировать ответ на вопрос можно в течение 2 месяцев (60 дней), после предоставления ответа и только 1 раз. + tags: + - Вопросы + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + required: + - id + - wasViewed + properties: + id: + description: Id вопроса + type: string + example: n5um6IUBQOOSTxXoo0gV + wasViewed: + description: Просмотрен (`true`), не просмотрен (`false`) + type: boolean + example: true + - type: object + required: + - id + - answer + - state + properties: + id: + type: string + description: Id вопроса + example: n5um6IUBQOOSTxXoo0gV + answer: + type: object + required: + - text + properties: + text: + type: string + description: Текст ответа + example: текст ответа + state: + type: string + description: | + Статус вопроса: + - `none` - вопрос отклонён продавцом (такой вопрос не отображается на портале покупателей) + - `wbRu` - ответ предоставлен, вопрос отображается на сайте покупателей. + examples: + ViewQuestion: + description: Просмотреть вопрос + value: + id: n5um6IUBQOOSTxXoo0gV + wasViewed: true + RejectQuestion: + description: Отклонить вопрос + value: + id: n5um6IUBQOOSTxXoo0gV + answer: + text: текст ответа + state: none + AnswerQuestionOrEditAnswer: + description: Ответить на вопрос или отредактировать ответ + value: + id: n5um6IUBQOOSTxXoo0gV + answer: + text: текст ответа + state: wbRu + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: null + error: false + errorText: '' + additionalErrors: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + '404': + description: Ошибка - не найдено + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr404: + $ref: '#/components/examples/FeedbackErr404' + /api/v1/questions/report: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получение вопросов в формате XLSX + description: Метод позволяет получить XLSX файл с вопросами в кодировке BASE64. + tags: + - Вопросы + parameters: + - name: isAnswered + in: query + description: | + Обработанные вопросы (`true`) или необработанные вопросы(`false`) + schema: + type: boolean + example: false + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + fileName: + type: string + description: Имя файла + example: report.xlsx + file: + type: string + format: binary + description: Файл + example: UEsDBBQAC ... CAADMdQAAAAA= + contentType: + type: string + description: Тип контента + example: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/questions/count: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Количество вопросов + description: Метод позволяет получить количество вопросов. + tags: + - Вопросы + parameters: + - name: dateFrom + in: query + description: Дата начала периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + - name: dateTo + in: query + description: Дата конца периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + - name: isAnswered + in: query + description: | + Обработанные вопросы (`true`) или необработанные вопросы (`false`).
Если не указать, вернутся обработанные вопросы. + schema: + type: boolean + example: false + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: integer + description: Количество вопросов + example: 77 + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/question: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получить вопрос по Id + description: Метод позволяет получить вопрос по его Id.
+ tags: + - Вопросы + parameters: + - name: id + in: query + required: true + description: Идентификатор вопроса + schema: + type: string + example: K40ZY1kBHA64Ev-ch5bd + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + id: + type: string + description: id вопроса + text: + type: string + description: Текст вопроса + createdDate: + type: string + format: date-time + description: Дата и время создания вопроса + state: + type: string + description: | + Статус вопроса: + - `none` - вопрос отклонён продавцом (такой вопрос не отображается на портале покупателей) + - `wbRu` - ответ предоставлен, вопрос отображается на сайте покупателей + - `suppliersPortalSynch` - новый вопрос + answer: + description: Структура ответа + type: object + properties: + text: + type: string + description: Текст ответа + editable: + type: boolean + description: Можно ли отредактировать ответ (`false` - нельзя, `true` - можно) + createDate: + type: string + format: date-time + description: Дата и время создания ответа + productDetails: + type: object + description: Структура товара + properties: + nmId: + type: integer + description: Артикул WB + imtId: + type: integer + description: Идентификатор карточки товара + productName: + type: string + description: Название товара + supplierArticle: + type: string + description: Артикул продавца + supplierName: + type: string + description: Имя продавца + brandName: + type: string + description: Название бренда + wasViewed: + type: boolean + description: Просмотрен ли вопрос + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /api/v1/feedbacks/count-unanswered: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Необработанные отзывы + description: Метод позволяет получить количество необработанных отзывов за сегодня, за всё время, и среднюю оценку всех отзывов. + tags: + - Отзывы + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Количество необработанных отзывов + example: 1 + countUnansweredToday: + type: integer + description: Количество необработанных отзывов за сегодня + example: 0 + valuation: + type: string + description: Средняя оценка всех отзывов + example: '4.7' + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /api/v1/parent-subjects: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Родительские категории товаров + description: Метод позволяет получить список родительских категорий товаров, которые есть у продавца. + tags: + - Отзывы + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + subjectId: + type: integer + description: Id категории товара + example: 1162 + subjectName: + type: string + description: Название категории товара + example: Строительные инструменты + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedbacks/products/rating: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Средняя оценка товаров по родительской категории + description: Метод позволяет получить среднюю оценку товаров по родительской категории. + tags: + - Отзывы + parameters: + - name: subjectId + in: query + required: true + description: id категории товара + schema: + type: integer + example: 3109 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + valuation: + type: string + description: Средняя оценка товаров + example: '4.8' + feedbacksCount: + type: integer + description: Количество отзывов по запрашиваемой категории + example: 277 + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedbacks/products/rating/top: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Товары с наибольшей и наименьшей средней оценкой по родительской категории + description: Метод позволяет получить список из двух товаров, с наибольшей и наименьшей средней оценкой, по родительской категории. + tags: + - Отзывы + parameters: + - name: subjectId + in: query + required: true + description: id категории товара + schema: + type: integer + example: 3109 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + productMaxRating: + $ref: '#/components/schemas/productRating' + productMinRating: + $ref: '#/components/schemas/productRating' + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + productMaxRating: + nmId: 14917842 + imtId: 11157265 + subjectId: 5135 + valuationsSum: 1260 + feedbacksCount: 252 + valuation: 5 + productName: Кофе + supplierArticle: '123401' + brandName: Nescafe + productMinRating: + nmId: 14917846 + imtId: 11157269 + subjectId: 5134 + valuationsSum: 4 + feedbacksCount: 2 + valuation: 2 + productName: Кофе + supplierArticle: '425501' + brandName: Nescafe + error: false + errorText: '' + additionalErrors: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedbacks: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список отзывов + description: Метод позволяет получить список отзывов по заданным параметрам с пагинацией и сортировкой. + tags: + - Отзывы + parameters: + - name: isAnswered + in: query + required: true + description: Обработанные отзывы (`true`) или необработанные отзывы(`false`) + schema: + type: boolean + example: false + - name: nmId + in: query + description: Артикул WB + schema: + type: integer + example: 5870243 + - name: take + in: query + required: true + description: Количество отзывов (max. 5 000) + schema: + type: integer + example: 1 + - name: skip + in: query + required: true + description: Количество отзывов для пропуска (max. 199990) + schema: + type: integer + example: 0 + - name: order + in: query + description: Сортировка отзывов по дате (dateAsc/dateDesc) + schema: + type: string + enum: + - dateAsc + - dateDesc + - name: dateFrom + in: query + description: Дата начала периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + - name: dateTo + in: query + description: Дата конца периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Количество необработанных отзывов + countArchive: + type: integer + description: Количество обработанных отзывов + feedbacks: + $ref: '#/components/schemas/responseFeedback' + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + countUnanswered: 1 + countArchive: 1 + feedbacks: + - id: n5um6IUBQOOSTxXoo0gV + imtId: 4702466 + nmId: 5870243 + subjectId: 390 + userName: userName + text: Great product. Thank you + productValuation: 5 + createdDate: '2023-01-25T11:18:33Z' + updatedDate: '2023-01-26T11:09:54Z' + answer: null + state: none + productDetails: + imtId: 4702466 + nmId: 5870243 + productName: Case for phone + supplierArticle: 41058/transparent + supplierName: ГП Реклама и услуги + brandName: 1000 Catalog + size: size + photoLinks: + - fullSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_fs.jpg + miniSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_ms.jpg + video: null + wasViewed: true + error: false + errorText: '' + additionalErrors: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + patch: + security: + - HeaderApiKey: [] + summary: Работа с отзывом + description: | + В зависимости от тела запроса можно: + - Просмотреть отзыв. + - Ответить на отзыв, или отредактировать ответ. + - Оценить отзыв и/или товар. + + Отредактировать ответ на отзыв можно в течение 2 месяцев (60 дней), после предоставления ответа и только 1 раз. + tags: + - Отзывы + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + required: + - id + - wasViewed + properties: + id: + type: string + description: Id отзыва + example: n5um6IUBQOOSTxXoo0gV + wasViewed: + type: boolean + description: Просмотрен (`true`) или не просмотрен (`false`) + example: true + - type: object + required: + - id + - text + properties: + id: + type: string + description: Id отзыва + example: n5um6IUBQOOSTxXoo0gV + text: + type: string + description: Текст ответа (max. 1000 символов) + example: текст ответа + - type: object + required: + - id + properties: + id: + description: Идентификатор отзыва + type: string + supplierFeedbackValuation: + description: Оценка отзыва. Можно получить методом Получить список оценок + type: integer + supplierProductValuation: + description: Оценка товара. Можно получить методом Получить список оценок + type: integer + examples: + ViewFeedback: + description: Просмотреть отзыв + value: + id: n5um6IUBQOOSTxXoo0gV + wasViewed: true + AnswerFeedbackOrEditAnswer: + description: Ответить на отзыв, или отредактировать ответ + value: + id: n5um6IUBQOOSTxXoo0gV + text: текст ответа + RateFeedbackAndProduct: + description: Оценить товар и/или отзыв + value: + id: a2X3e4wB-uQDHp63D36M + supplierFeedbackValuation: 1 + supplierProductValuation: 1 + responses: + '200': + description: Успешно + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + ReviewRatingNotAvailable: + $ref: '#/components/examples/ReviewRatingNotAvailable' + EmptyFieldsInRequest: + $ref: '#/components/examples/EmptyFieldsInRequest' + unknownEstimate: + $ref: '#/components/examples/unknownEstimate' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + '404': + description: Ошибка - не найдено + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr404: + $ref: '#/components/examples/FeedbackErr404' + '422': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + CouldNotFixFeedback: + $ref: '#/components/examples/CouldNotFixFeedback' + /api/v1/supplier-valuations: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получить список оценок + description: Метод позволяет получать список значений для оценки отзыва/товара. + tags: + - Отзывы + parameters: + - name: X-Locale + in: header + schema: + type: string + example: ru + description: Выбор языка значений полей ответа (`ru` - русский, `en` - английский, `zh` - китайский) + responses: + '200': + description: Список оценок + content: + application/json: + schema: + type: object + properties: + data: + description: Данные + type: object + properties: + feedbackValuations: + description: Оценки для отзыва. См. Response samples + type: object + properties: + '1': + type: string + '2': + type: string + '3': + type: string + '4': + type: string + '5': + type: string + '6': + type: string + '7': + type: string + productValuations: + description: Оценки для товара См. Response samples + type: object + properties: + '1': + type: string + '2': + type: string + '3': + type: string + '4': + type: string + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + feedbackValuations: + '1': Отзыв не относится к товару + '2': Отзыв оставили конкуренты + '3': Спам + '4': Нецензурное содержимое в фото + '5': Нецензурная лексика + '6': Фото не имеет отношения к товару + '7': Отзыв с политическим контекстом + productValuations: + '1': Повредили при доставке + '2': Товар подменили + '3': Случайно отправил не тот товар и хочу его вернуть + '4': Товар вернули после эксплуатации + error: false + errorText: '' + additionalErrors: null + /api/v1/feedbacks/order/return: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + post: + security: + - HeaderApiKey: [] + summary: Возврат товара по ID отзыва + description: | + Метод позволяет запросить на возврат товар, по которому оставлен отзыв.
Возврат доступен для отзывов с `"isAbleReturnProductOrders": true` + tags: + - Отзывы + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + feedbackId: + type: string + description: Идентификатор отзыва + example: + feedbackId: absdfgerrrfff1234 + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/responseDoNotGetFeedback400' + '422': + description: Ошибка + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + responseInaccessibleBackGoodError422: + $ref: '#/components/examples/responseInaccessibleBackGoodError422' + responseUnsuccessfullyBackGoodError422: + $ref: '#/components/examples/responseUnsuccessfullyBackGoodError422' + /api/v1/feedbacks/report: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получение отзывов в формате XLSX + description: | + Метод позволяет получить XLSX файл с отзывами в кодировке BASE64.
За один запрос можно получить 5000 отзывов.
+ tags: + - Отзывы + parameters: + - name: isAnswered + in: query + description: Необработанный(`false`) или в архиве(`true`) + schema: + type: boolean + enum: + - true + - false + required: true + deprecated: false + - name: skip + in: query + description: Параметр пагинации, указывает сколько отзывов пропустить (max. 20 000) + schema: + type: integer + example: 1 + - name: dateFrom + description: Дата начала периода в формате Unix timestamp
+ in: query + schema: + type: integer + example: 1696226971 + - name: dateTo + description: Дата конца периода в формате Unix timestamp
+ in: query + schema: + type: integer + example: 1698916171 + - name: order + description: Сортировка отзывов по дате (dateAsc/dateDesc)
+ in: query + schema: + type: string + example: dateDesc + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + fileName: + type: string + description: Имя файла + file: + type: string + format: binary + description: Файл + contentType: + type: string + description: Тип контента + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + fileName: report.xlsx + file: UEsDBBQA ... ACAADxGgAAAAA= + contentType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + error: false + errorText: '' + additionalErrors: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedbacks/archive: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Список архивных отзывов + description: | + Метод позволяет получить список архивных отзывов.
Отзыв становится архивным, если: + - На отзыв получен ответ. + - Ответ на отзыв не получен в течение 30 дней. + - В отзыве нет текста и фото. + tags: + - Отзывы + parameters: + - name: nmId + in: query + description: Артикул WB + schema: + type: integer + example: 14917842 + - name: take + in: query + required: true + description: Количество отзывов (max. 5 000) + schema: + type: integer + example: 1 + - name: skip + in: query + required: true + description: Количество отзывов для пропуска + schema: + type: integer + example: 0 + - name: order + in: query + description: Сортировка отзывов по дате (dateAsc/dateDesc) + schema: + type: string + enum: + - dateAsc + - dateDesc + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + feedbacks: + $ref: '#/components/schemas/responseFeedback' + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + feedbacks: + - id: z0fuK3wBIAjWoLmLkJKo + imtId: 11157265 + nmId: 14917842 + subjectId: 5135 + userName: userName + text: Все отлично.Подарил теще. Красивое! + productValuation: 5 + createdDate: '2011-11-01T16:41:39+04:00' + updatedDate: '2022-06-21T12:02:42Z' + answer: + text: супер + state: wbRu + editable: false + state: wbRu + productDetails: + imtId: 11157265 + nmId: 14917842 + productName: Кофе + supplierArticle: '123401' + supplierName: тест + brandName: Nescafe + size: size + photoLinks: + - fullSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_fs.jpg + miniSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_ms.jpg + video: null + wasViewed: true + error: false + errorText: '' + additionalErrors: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedbacks/products/rating/nmid: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Средняя оценка товара по артикулу WB + description: Метод позволяет получить среднюю оценку товара по его артикулу WB. + tags: + - Отзывы + parameters: + - name: nmId + in: query + description: Артикул WB + schema: + type: integer + example: 14917842 + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + valuation: + type: string + description: Средняя оценка товара + example: '4.3' + feedbacksCount: + type: integer + description: Количество отзывов на данный товар + example: 16 + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '400': + description: Ошибка переданных параметров + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedbacks/count: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Количество отзывов + description: Метод позволяет получить количество отзывов. + tags: + - Отзывы + parameters: + - name: dateFrom + in: query + description: Дата начала периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + - name: dateTo + in: query + description: Дата конца периода в формате Unix timestamp + schema: + type: integer + example: 1688465092 + - name: isAnswered + in: query + description: | + Обработанные отзывы(`true`) или необработанные отзывы(`false`).
Если не указать, вернутся обработанные отзывы. + schema: + type: boolean + example: false + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: integer + description: Количество отзывов + example: 724583 + error: + type: boolean + description: Есть ли ошибка + example: false + errorText: + type: string + description: Описание ошибки + example: '' + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: null + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + '403': + description: Ошибка авторизации + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + /api/v1/feedback: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получить отзыв по Id + description: Метод позволяет получить отзыв по его Id. + tags: + - Отзывы + parameters: + - name: id + in: query + required: true + description: Идентификатор отзыва + schema: + type: string + example: G7Y9Y1kBAtKOitoBT_lV + responses: + '200': + description: Успешно + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + id: + type: integer + description: Идентификатор отзыва + userName: + type: string + description: Имя автора отзыва + matchingSize: + type: string + description: | + Соответствие заявленного размера реальному. +
Возможные значения: + - ` ` - для безразмерных товаров + - `ок` - соответствует размеру + - `smaller` - маломерит + - `bigger` - большемерит + text: + type: string + description: Текст отзыва + productValuation: + type: integer + description: Оценка товара + createdDate: + type: string + format: date-time + description: Дата и время создания отзыва + state: + type: string + description: | + Статус отзыва: + - `none` - не обработан (новый) + - `wbRu` - обработан + answer: + type: object + description: Структура ответа + properties: + text: + type: string + description: Текст ответа + state: + type: string + description: | + Статус: + - `none` - новый + - `wbRu`- отображается на сайте + - `reviewRequired` - ответ проходит проверку + - `rejected` - ответ отклонён + productDetails: + description: Структура товара + type: object + properties: + nmId: + type: integer + description: Артикул WB + imtId: + type: integer + description: Идентификатор карточки товара + productName: + type: string + description: Название товара + supplierArticle: + type: string + nullable: true + description: Артикул продавца + supplierName: + type: string + nullable: true + description: Имя продавца + brandName: + type: string + nullable: true + description: Бренд товара + size: + type: string + description: Размер товара (`techSize` в КТ) + photoLinks: + description: Массив структур фотографий + type: array + items: + type: object + properties: + fullSize: + type: string + description: Адрес фотографии полного размера + miniSize: + type: string + description: Адрес фотографии маленького размера + video: + description: Структура видео + type: object + properties: + previewImage: + type: string + description: Ссылка на обложку видео + link: + type: string + description: Ссылка на файл плейлиста видео (доступно по протоколу hls) + duration_sec: + type: integer + description: Общая продолжительность видео + wasViewed: + type: boolean + description: Просмотрен ли отзыв + isAbleSupplierFeedbackValuation: + description: Доступна ли продавцу оценка отзыва (`true` - доступна, `false` - не доступна) + type: boolean + supplierFeedbackValuation: + description: Оценка отзыва, оставленная продавцом + type: integer + isAbleSupplierProductValuation: + description: Доступна ли продавцу оценка товара (`true` - доступна, `false` - не доступна) + type: boolean + supplierProductValuation: + description: Оценка товара, оставленная продавцом + type: integer + isAbleReturnProductOrders: + description: Доступна ли товару опция возврата (`false` - нет, `true` - да) + type: boolean + returnProductOrdersDate: + description: Дата и время, когда на запрос возврата был получен ответ со статус-кодом 200. + type: string + bables: + description: Список тегов покупателя + type: array + items: + type: string + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + example: + data: + id: n5um6IUBQOOSTxXoo0gV + imtId: 4702466 + nmId: 5870243 + subjectId: 390 + userName: ИмяПокупателя + text: Хороший кейс. Спасибо + productValuation: 5 + createdDate: '2023-01-25T11:18:33Z' + answer: null + state: none + productDetails: + imtId: 4702466 + nmId: 5870243 + productName: Чехол для телефона + supplierArticle: 41058/transparent + supplierName: ГП Реклама и услуги + brandName: 1000 Каталог + size: size + photoLinks: + - fullSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_fs.jpg + miniSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_ms.jpg + video: null + wasViewed: true + error: false + errorText: '' + additionalErrors: null + '401': + description: Не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + /api/v1/templates: + servers: + - url: https://feedbacks-api.wildberries.ru + - url: https://feedbacks-api.wb.ru + get: + security: + - HeaderApiKey: [] + summary: Получить шаблоны ответов + description: Метод позволяет получить шаблоны ответов на отзывы/вопросы. + tags: + - Шаблоны для вопросов и отзывов + parameters: + - name: templateType + in: query + schema: + type: integer + example: 1 + description: | + `1` - шаблоны для отзывов
`2` - шаблоны для вопросов + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Response200' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + Response200: + $ref: '#/components/examples/Response200' + IncorrectTemplateType: + $ref: '#/components/examples/IncorrectTemplateType' + '401': + description: Не авторизован + content: + text/plain; charset=utf-8: + schema: + type: string + examples: + EmptyAuthHeader: + $ref: '#/components/examples/EmptyAuthHeader' + TokenScopeNotAllowed: + $ref: '#/components/examples/TokenScopeNotAllowed' + post: + security: + - HeaderApiKey: [] + summary: Создать шаблон + description: | + Метод позволяет создать шаблон ответа на отзыв/вопрос.
Всего можно создать 20 шаблонов. 10 на отзывы и 10 на вопросы.
Допустимы любые символы. + tags: + - Шаблоны для вопросов и отзывов + requestBody: + content: + application/json: + schema: + type: object + required: + - name + - templateType + - text + properties: + name: + type: string + description: Название шаблона (от 1 до 100 символов) + templateType: + type: integer + description: | + Тип шаблона
`1` - шаблон для отзывов
`2` - шаблон для вопросов + text: + type: string + description: Текст шаблона (от 2 до 1000 символов) + example: + name: name + templateType: 1 + text: text + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PostTemplateOK' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + PostTemplateOK: + $ref: '#/components/examples/PostTemplateOK' + TemplateLimitExceeded: + $ref: '#/components/examples/TemplateLimitExceeded' + InvalidTemplateNameLen: + $ref: '#/components/examples/InvalidTemplateNameLen' + InvalidCommentLenTemplate: + $ref: '#/components/examples/InvalidCommentLenTemplate' + InvalidRequest: + $ref: '#/components/examples/InvalidRequest' + '401': + description: Не авторизован + content: + text/plain; charset=utf-8: + schema: + type: string + examples: + EmptyAuthHeader: + $ref: '#/components/examples/EmptyAuthHeader' + TokenScopeNotAllowed: + $ref: '#/components/examples/TokenScopeNotAllowed' + patch: + security: + - HeaderApiKey: [] + summary: Редактировать шаблон + description: | + Метод позволяет отредактировать шаблон.
Допустимы любые символы. + tags: + - Шаблоны для вопросов и отзывов + requestBody: + content: + application/json: + schema: + type: object + required: + - name + - templateID + - text + properties: + name: + type: string + description: Название шаблона (от 1 до 100 символов) + templateID: + type: integer + description: Идентификатор шаблона + text: + type: string + description: Текст шаблона (от 2 до 1000 символов) + example: + name: newname + templateID: 1234 + text: newtext + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PatchDelRespOK' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + PatchDelRespOK: + $ref: '#/components/examples/PatchDelRespOK' + EditTemplateError: + $ref: '#/components/examples/EditTemplateError' + InvalidRequest: + $ref: '#/components/examples/InvalidRequest' + InvalidTemplateNameLen: + $ref: '#/components/examples/InvalidTemplateNameLen' + InvalidCommentLenTemplate: + $ref: '#/components/examples/InvalidCommentLenTemplate' + '401': + description: Не авторизован + content: + text/plain; charset=utf-8: + schema: + type: string + examples: + EmptyAuthHeader: + $ref: '#/components/examples/EmptyAuthHeader' + TokenScopeNotAllowed: + $ref: '#/components/examples/TokenScopeNotAllowed' + delete: + security: + - HeaderApiKey: [] + summary: Удалить шаблон + description: | + Метод позволяет удалить шаблон.
+ tags: + - Шаблоны для вопросов и отзывов + requestBody: + content: + application/json: + schema: + type: object + required: + - templateID + properties: + templateID: + type: integer + description: Идентификатор шаблона (max. 1) + example: + templateID: 1234 + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PatchDelRespOK' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + PatchDelRespOK: + $ref: '#/components/examples/PatchDelRespOK' + InvalidRequest: + $ref: '#/components/examples/InvalidRequest' + ErrorDeleteBD: + $ref: '#/components/examples/ErrorDeleteBD' + '401': + description: Не авторизован + content: + text/plain; charset=utf-8: + schema: + type: string + examples: + EmptyAuthHeader: + $ref: '#/components/examples/EmptyAuthHeader' + TokenScopeNotAllowed: + $ref: '#/components/examples/TokenScopeNotAllowed' + /api/v1/tariffs/commission: + get: + summary: Комиссия по категориям товаров + tags: + - Комиссии + description: | +

Комиссия WB по родительским категориям товаров согласно модели продаж.

Максимум — 1 запрос в минуту.

+ parameters: + - $ref: '#/components/parameters/Locale' + responses: + '200': + description: Комиссия + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Commission' + - $ref: '#/components/schemas/CommissionChina' + - $ref: '#/components/schemas/CommissionTurkey' + - $ref: '#/components/schemas/CommissionUzbekistan' + examples: + Commission: + $ref: '#/components/examples/Commission' + CommissionChina: + $ref: '#/components/examples/CommissionChina' + CommissionTurkey: + $ref: '#/components/examples/CommissionTurkey' + CommissionUzbekistan: + $ref: '#/components/examples/CommissionUzbekistan' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/RateLimit' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/tariffs/box: + get: + summary: Тарифы для коробов + tags: + - Коэффициенты складов + description: "

Для товаров, которые поставляются на\_склад в коробах (коробках), возвращает стоимость:

    \n
  • доставки со склада или пункта приёма до покупателя;
  • \n
  • доставки от покупателя до пункта приёма;
  • \n
  • хранения на\_складе Wildberries.
  • \n

Максимум — 60 запросов в минуту.

\n" + parameters: + - $ref: '#/components/parameters/Date' + responses: + '200': + description: Тарифы для коробов (коробок) + content: + application/json: + schema: + $ref: '#/components/schemas/TariffsBoxResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/tariffs/pallet: + get: + summary: Тарифы для монопаллет + tags: + - Коэффициенты складов + description: "

Для товаров, которые поставляются на\_склад Wildberries на\_монопаллетах, возвращает стоимость:

    \n
  • доставки со склада до покупателя;
  • \n
  • доставки от покупателя до склада;
  • \n
  • хранения на\_складе Wildberries.
  • \n

Максимум — 60 запросов в минуту.

\n" + parameters: + - $ref: '#/components/parameters/Date' + responses: + '200': + description: Тарифы для монопаллет + content: + application/json: + schema: + $ref: '#/components/schemas/TariffsPalletResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/tariffs/return: + get: + summary: "Тарифы на\_возврат" + tags: + - Стоимость возврата продавцу + description: "

Возвращает тарифы:

  • на\_перевозку товаров со склада Wildberries или из пункта приёма до продавца;
  • на\_обратную перевозку возвратов, которые не забрал продавец.

Максимум — 60 запросов в минуту.

" + parameters: + - $ref: '#/components/parameters/Date' + responses: + '200': + description: "Тарифы на\_возврат" + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnTariffsResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /api/v1/seller/chats: + servers: + - url: https://buyer-chat-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Список чатов + description: | + Возвращает список всех чатов продавца. + + Максимум 10 запросов за 10 секунд + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/ChatsResponse' + examples: + ResponseChats: + value: + result: + - chatID: 1:361b656c-5c0e-295b-db03-3d5b4d454c32 + replySign: 1:361b656c-5c0e-295b-db03-3d5b4d454c32:45734505:238d4d4925998ce295632034545f2fdf88892414c0f24bb48ac5d89f7866cff95022ef33d6563575d656bce676e4d36b48ed6084997347e55601646af6b37d96 + clientID: '12345' + clientName: Иван + - chatID: 1:578903a4-c140-b95b-9d51-896c58ab22dc + replySign: 1:578903a4-c140-b95b-9d51-896c58ab22dc:60012000:8b42800e4be81b56071bfac84a01b1da5a79f7b7eea2a08c3a7efe7e5d63face7240b9036d4a21ce9fe1eeeda1d7cfe27d241edced755267304922f3eb935467 + clientID: '987654' + clientName: Владислав + errors: null + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Error429' + examples: + LimitExceeded: + value: + code: 429 + message: '07e4668e-ac2242c7c8c5-UK:NvjBmvW6Zz9 (f7b1483684c6 {: max-rate 1rps, max-burst 10, auto-ban-period 30s}) too many requests' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/seller/events: + get: + servers: + - url: https://buyer-chat-api.wildberries.ru + security: + - HeaderApiKey: [] + summary: События чатов + description: | + Возвращает список событий всех чатов. + Чтобы получить все события:
1. Сделайте первый запрос без параметра `next`.
2. Повторяйте запрос со значением параметра `next` из ответа на предыдущий запрос, пока `totalEvents` не станет равным `0`. Это будет означать, что вы получили все события. +
Чтобы получать только новые события, укажите параметр `next` со значением поля `addTimestamp` из последнего полученного события.
Максимум 10 запросов за 10 секунд + parameters: + - name: next + in: query + description: | + Пагинатор. С какого момента получить следующий пакет данных.
Формат Unix timestamp **с миллисекундами** + schema: + type: integer + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/EventsResponse' + example: + result: + next: 1698045576000 + newestEventTime: '2023-10-23T07:19:36Z' + oldestEventTime: '2023-10-23T05:02:20Z' + totalEvents: 4 + events: + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: 55adee45-11f0-33b6-a847-6ccc7c78b2ec + eventType: message + isNewChat: true + message: + attachments: + goodCard: + date: '2023-10-18T11:46:01.528526Z' + needRefund: false + nmID: 12345678 + price: 500 + priceCurrency: RUB + rid: 2fb52cd9e25e52538a5f05994e688ae5 + size: '0' + statusID: 11 + files: + - contentType: application/pdf + date: '2023-10-23T08:02:19.594Z' + name: Чек.pdf + url: https://chat-basket-01.wbbasket.ru/vol0/part3265/fb25c9e9-cae8-52db-b68e-736c1896a3f5/pdf/0380e781-281e-41b5-8ae1-ce281f15a4a7.pdf + size: 1046143 + images: + - date: '2023-10-23T08:02:20.717Z' + url: https://chat-basket-01.wbbasket.ru/vol0/part2345/fb89c9e9-cae8-52db-b68e-736c1466a3f5/jpg/0823ff24-821e-40e9-8cdf-0a2b5fd86a32.jpg + text: Здравствуйте! У меня вопрос по товару "Альбом, бренд Эконом, артикул 13480414, товар получен 18.10.2023" + source: rusite + addTimestamp: 1698037340000 + addTime: '2023-10-23T05:02:20Z' + replySign: 1:1e265a58-a120-b178-008c-60af2460207c:66f136e919a8207e136757754f253189bfb9ae1ad9da9170c9d5c478626663908888c370216525bef51c0ca8d77952e05c9c17f9b63ab00374c5555b42efc07d + sender: client + clientID: '186132' + clientName: Алёна + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: cef95d3c-0345-4dc9-b6df-4c8c57a176a9 + eventType: message + message: + text: Здравствуйте! Пришёл не тот цвет. Можно вернуть и заказать другой товар? + source: rusite + addTimestamp: 1698037387000 + addTime: '2023-10-23T05:03:07Z' + sender: client + clientID: '186132' + clientName: Алёна + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: fd22e5bf-64fd-43f7-b3a0-ad29uu027f97 + eventType: message + message: + text: Здравствуйте. Да, сейчас оформим возврат. + source: seller-public-api + addTimestamp: 1698038124000 + addTime: '2023-10-23T05:15:24Z' + sender: seller + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: cef95d3c-0345-4dc9-b6df-4c8c75a176a7 + eventType: refund + refund: + actionType: sellerRequestRefund + price: 500 + priceCurrency: RUB + rid: 2fb52cd9e25e52538a5f05994e688ae5 + addTimestamp: 1698045576000 + addTime: '2023-10-23T07:19:36Z' + sender: seller + errors: null + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectNextParameter: + description: Тип значения или его величина не корректны + value: + error: Invalid number + IncorrectNextParameter1: + description: Недопустимое значение 0 + value: + error: Invalid value for "next" + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Error429' + examples: + LimitExceeded: + value: + code: 429 + message: '07e4668e-ac2242c7c8c5-UK:NvjBmvW6Zz9 (f7b1483684c6 {: max-rate 1rps, max-burst 10, auto-ban-period 30s}) too many requests' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/seller/message: + post: + servers: + - url: https://buyer-chat-api.wildberries.ru + security: + - HeaderApiKey: [] + summary: Отправить сообщение + description: | + Отправляет сообщения покупателю. + Максимум 10 запросов за 10 секунд + requestBody: + content: + multipart/form-data: + schema: + required: + - replySign + type: object + properties: + replySign: + maxLength: 255 + type: string + description: | + Подпись чата. Можно получить из [информации по чату](./#/paths/~1api~1v1~1seller~1chats/get) или [данных события](./#/paths/~1api~1v1~1seller~1events/get), если в событии есть поле `"isNewChat": true`. + message: + maxLength: 1000 + type: string + description: Текст сообщения. Максимум 1000 символов. + file: + type: array + description: | + Файлы, формат JPEG, PDF или PNG, максимальный размер — 5 Мб каждый. Максимальный суммарный размер файлов — 30 Мб. + items: + type: string + format: binary + required: true + responses: + '200': + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + result: + addTime: 1712848270018 + chatID: 1:641b623c-5c0e-295b-db03-3d5b4d484c32 + errors: [] + '400': + description: Некорректный запрос + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + InvalidSignature: + description: Подпись некорректна + value: + error: Invalid signature + InvalidFileSize: + description: Размер файла превышает допустимый + value: + error: 'A24FA09844E: attachment too big. Max size: 5MiB' + UnsupportedFilesType: + description: Тип файла не поддерживается + value: + error: '4A9F2544E29: "video_2023-07-25_10-54-09.mp4" has unsupported mime type' + InvalidMessage: + description: Значение параметра message некорректно + value: + error: Invalid value for "message" + '403': + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Слишком много запросов + content: + application/json: + schema: + $ref: '#/components/schemas/Error429' + examples: + LimitExceeded: + value: + code: 429 + message: '07e4668e-ac2242c7c8c5-UK:NvjBmvW6Zz9 (f7b1483684c6 {: max-rate 1rps, max-burst 10, auto-ban-period 30s}) too many requests' + '500': + description: Внутренняя ошибка сервера + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/claims: + servers: + - url: https://returns-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Заявки покупателей на возврат + description: "Возвращает заявки покупателей на возврат товаров за текущие 14 дней.
Максимум 20 запросов в\_минуту\n" + parameters: + - $ref: '#/components/parameters/is_archive' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/nm_id' + responses: + '200': + $ref: '#/components/responses/GetClaimsSuccessResponse' + '400': + $ref: '#/components/responses/Error400GetClaims' + '401': + $ref: '#/components/responses/ErrorUnknownUser' + '429': + $ref: '#/components/responses/ErrorRateLimit' + 5XX: + $ref: '#/components/responses/ErrorInternalResponse' + /api/v1/claim: + servers: + - url: https://returns-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + summary: Ответ на заявку покупателя + description: "Отправляет ответ на заявку покупателя на возврат.
Максимум 20 запросов в\_минуту\n" + requestBody: + $ref: '#/components/requestBodies/PatchClaimReq' + responses: + '200': + $ref: '#/components/responses/PatchClaimSuccessResponse' + '400': + $ref: '#/components/responses/Error400PatchClaim' + '401': + $ref: '#/components/responses/ErrorUnknownUser' + '429': + $ref: '#/components/responses/ErrorRateLimit' + 5XX: + $ref: '#/components/responses/ErrorInternalResponse' +components: + schemas: + responseCardCreate: + type: object + properties: + data: + type: object + nullable: true + example: null + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + oneOf: + - type: object + properties: + string: + type: string + - type: string + requestMoveNmsImtConn: + type: object + required: + - targetIMT + - nmIDs + properties: + targetIMT: + description: Существующий у продавца `imtID`, под которым необходимо объединить НМ + type: integer + example: 123 + nmIDs: + description: | + `nmID`, которые необходимо объединить (максимум 30) + type: array + items: + type: integer + example: + - 837459235 + - 828572090 + requestMoveNmsImtDisconn: + type: object + required: + - nmIDs + properties: + nmIDs: + description: '`nmID`, которые необходимо разъединить (max 30)' + type: array + items: + type: integer + example: + - 837459235 + - 828572090 + responseIncorrectDate: + type: object + properties: + error: + type: string + responseContentError1: + type: object + properties: + data: + type: object + nullable: true + example: null + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + properties: + error: + type: string + responseBodyContentError400: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + properties: + MoveNmsToTrash: + type: string + example: + data: null + error: true + errorText: Текст ошибки + additionalErrors: + MoveNmsToTrash: Bad request + responseBodyContentError403: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: string + example: + data: null + error: true + errorText: Доступ запрещен + additionalErrors: Доступ запрещен + responseContentError4: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + properties: + description: + type: string + responseContentError5: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: object + properties: + tagID: + type: string + responseContentError6: + type: object + properties: + data: + type: object + nullable: true + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + type: string + nullable: true + example: + data: null + error: false + errorText: '' + additionalErrors: null + mediaErrors: + type: object + properties: + additionalErrors: + description: Дополнительные ошибки + type: object + data: + type: object + error: + description: Флаг ошибки + type: boolean + errorText: + description: Описание ошибки + type: string + example: + additionalErrors: null + data: null + error: true + errorText: Текст ошибки + ResponseError: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + errorText: + type: string + TaskAlreadyExistsError: + type: object + properties: + data: + type: object + properties: + id: + description: ID загрузки + type: integer + alreadyExists: + description: "Флаг дублирования загрузки: `true`\_— такая загрузка уже есть\n" + type: boolean + error: + description: Флаг ошибки + type: boolean + errorText: + description: Текст ошибки + type: string + TaskCreated: + type: object + properties: + data: + type: object + properties: + id: + type: integer + description: ID загрузки + alreadyExists: + type: boolean + description: "Флаг дублирования загрузки: `true`\_— такая загрузка уже есть\n" + example: false + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Текст ошибки + type: string + example: '' + Goods: + type: array + description: "Товары, цены и скидки для них. Максимум 1\_000\_товаров. Цена и скидка не могут быть пустыми одновременно.\n

\nЕсли новая цена со скидкой будет хотя бы в\_3 раза меньше старой, она попадёт [в\_карантин](https://seller.wildberries.ru/discount-and-prices/quarantine) и товар будет продаваться по\_старой цене. Ошибка об\_этом будет в\_ответах методов [Состояния загрузок](./#tag/Sostoyaniya-zagruzok)\n

\nВы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина [в\_личном кабинете](https://seller.wildberries.ru/discount-and-prices/quarantine)\n" + items: + $ref: '#/components/schemas/Good' + Good: + type: object + required: + - nmID + properties: + nmID: + type: integer + example: 123 + description: Артикул Wildberries + price: + type: integer + example: 999 + description: "Цена. Валюту можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `currencyIsoCode4217`" + discount: + type: integer + example: 30 + description: "Скидка,\_%" + SizeGoodsBody: + description: "Размеры и цены для них. Максимум 1\_000 размеров\n

\nЕсли новая цена со скидкой будет хотя бы в\_3 раза меньше старой, она попадёт [в\_карантин](https://seller.wildberries.ru/discount-and-prices/quarantine) и товар будет продаваться по\_старой цене. Ошибка об\_этом будет в\_ответах методов [Состояния загрузок](./#tag/Sostoyaniya-zagruzok)\n

\nВы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина [в\_личном кабинете](https://seller.wildberries.ru/discount-and-prices/quarantine)\n" + type: array + items: + $ref: '#/components/schemas/SizeGoodReq' + SizeGoodReq: + type: object + required: + - nmID + - sizeID + - price + properties: + nmID: + type: integer + example: 123 + description: Артикул Wildberries + sizeID: + type: integer + example: 98989887 + description: "ID размера. Можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `sizeID`. В методах контента это поле `chrtID`" + price: + type: integer + example: 999 + description: "Цена. Валюту можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `currencyIsoCode4217`" + GoodsList: + type: object + description: Размеры товара + properties: + nmID: + type: integer + description: Артикул Wildberries + example: 98486 + vendorCode: + type: string + description: Артикул продавца + example: '07326060' + sizes: + type: array + description: Размер + items: + type: object + properties: + sizeID: + type: integer + description: ID размера. В методах контента это поле `chrtID` + format: int64 + example: 3123515574 + price: + type: integer + description: Цена + example: 500 + discountedPrice: + type: number + description: Цена со скидкой + example: 350 + techSizeName: + description: Размер товара + type: string + example: '42' + currencyIsoCode4217: + type: string + description: Валюта, по стандарту ISO 4217 + example: RUB + discount: + type: integer + description: "Скидка,\_%" + example: 30 + editableSizePrice: + description: "Можно ли устанавливать цены отдельно для разных размеров: `true`\_— можно, `false`\_— нельзя. Эта возможность зависит от категории товара\n" + type: boolean + example: true + SizeGood: + type: object + description: "Информация о\_размере" + properties: + nmID: + type: integer + example: 123 + description: Артикул Wildberries + sizeID: + description: "ID размера. Можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `sizeID`. В методах контента это поле `chrtID`" + type: integer + example: 98989887 + vendorCode: + type: string + example: '34552332' + description: Артикул продавца + price: + type: integer + example: 25000 + description: Цена + currencyIsoCode4217: + type: string + description: Валюта, по стандарту ISO 4217 + example: RUB + discountedPrice: + type: number + example: 14250 + description: "Цена со\_скидкой" + discount: + description: "Скидка,\_%" + type: integer + example: 43 + techSizeName: + description: Размер товара + type: string + example: '42' + editableSizePrice: + description: "Можно ли устанавливать цены отдельно для разных размеров: `true`\_— можно, `false`\_— нельзя. Эта возможность зависит от категории товара\n" + type: boolean + example: true + GoodBufferHistory: + type: object + properties: + nmID: + type: integer + example: 544833232 + description: Артикул Wildberries + vendorCode: + type: string + example: '34552332' + description: Артикул продавца + sizeID: + type: integer + example: 54483342 + description: ID размера. В методах контента это поле `chrtID` + techSizeName: + type: string + example: XXL + description: Размер + price: + type: integer + example: 1500 + description: Цена + currencyIsoCode4217: + type: string + example: RUB + description: Валюта, по стандарту ISO 4217 + discount: + type: integer + example: 25 + description: "Скидка,\_%" + status: + $ref: '#/components/schemas/GoodStatusBuffer' + errorText: + type: string + example: null + description: Текст ошибки + GoodHistory: + type: object + properties: + nmID: + type: integer + example: 544833232 + description: Артикул Wildberries + vendorCode: + type: string + example: '34552332' + description: Артикул продавца + sizeID: + type: integer + example: 54483342 + description: ID размера. В методах контента это поле `chrtID` + techSizeName: + type: string + example: '42' + description: Размер + price: + type: integer + example: 1500 + description: Цена + currencyIsoCode4217: + type: string + example: RUB + description: Валюта, по стандарту ISO 4217 + discount: + type: integer + example: 25 + description: "Скидка,\_%" + status: + $ref: '#/components/schemas/GoodStatus' + errorText: + type: string + example: The product is in quarantine + description: "Текст ошибки\n\n
\n

Ошибка The product is in quarantine возникает, если новая цена со скидкой хотя бы в\_3 раза меньше старой. Вы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина в\_личном кабинете

\n
\n" + SupplierTaskMetadata: + properties: + uploadID: + type: integer + example: 395643565 + description: ID загрузки + status: + $ref: '#/components/schemas/TaskStatus' + uploadDate: + $ref: '#/components/schemas/Date' + activationDate: + $ref: '#/components/schemas/Date1' + overAllGoodsNumber: + description: Всего товаров + type: integer + successGoodsNumber: + description: Товаров без ошибок + type: integer + SupplierTaskMetadataBuffer: + properties: + uploadID: + type: integer + example: 395643565 + description: ID загрузки + status: + $ref: '#/components/schemas/TaskStatusBuffer' + uploadDate: + $ref: '#/components/schemas/Date' + activationDate: + $ref: '#/components/schemas/Date1' + overAllGoodsNumber: + description: Всего товаров + type: integer + example: 100 + successGoodsNumber: + description: Товаров без ошибок (0, потому что загрузка в обработке) + type: integer + example: 0 + Date: + type: string + example: '2022-08-21T22:00:13+02:00' + format: date + pattern: YYYY-MM-DDTHH:MM:SSZ + description: Дата и время, когда загрузка создана + Date1: + type: string + example: '2022-08-21T22:00:13+02:00' + format: date + pattern: YYYY-MM-DDTHH:MM:SSZ + description: "Дата и время, когда загрузка отправляется в\_обработку" + TaskStatus: + description: "Статус загрузки: \n * `3`\_— обработана, в товарах нет ошибок, цены и скидки обновились\n * `4`\_— отменена\n * `5`\_— обработана, но в\_товарах есть ошибки. Для товаров без ошибок цены и скидки обновились, а ошибки в\_остальных товарах можно получить с\_помощью метода [Детализация обработанной загрузки](#tag/Istoriya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get)\n * `6`\_— обработана, но\_во всех товарах есть ошибки. Их тоже можно получить с\_помощью метода [Детализация обработанной загрузки](#tag/Istoriya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get)\n" + type: integer + example: 3 + TaskStatusBuffer: + description: "Статус загрузки: `1`\_— в обработке\n" + type: integer + example: 1 + GoodStatus: + description: "Статус товара: \n * `2`\_— товар без ошибок, цена и/или скидка обновилась\n * `3`\_— есть ошибки, данные не обновились\n" + type: integer + example: 1 + GoodStatusBuffer: + description: "Статус товара: `1`\_— в обработке\n" + type: integer + example: 1 + models.AcceptanceCoefficient: + type: object + properties: + date: + type: string + description: Дата начала действия коэффициента + coefficient: + type: number + description: | + Коэффициент приёмки: + - `-1` — поставка недоступна + - `0` — бесплатная поставка + - от `1` — множитель стоимости приёмки + warehouseID: + type: integer + description: ID склада. По нему можно получить [информацию о складе](./#tag/Informaciya-dlya-formirovaniya-postavok/paths/~1api~1v1~1warehouses/get) + warehouseName: + type: string + description: Название склада + boxTypeName: + type: string + description: | + Тип поставки: + - `Короба` + - `Монопаллеты` + - `Суперсейф` + - `QR-поставка с коробами` + boxTypeID: + type: integer + description: | + ID типа поставки: + - `2` — Короба + - `5` — Монопаллеты + - `6` — Суперсейф +
Для типа поставки **QR-поставка с коробами** поле не возвращается + models.WarehousesResultItems: + type: object + properties: + ID: + type: integer + description: ID склада + name: + type: string + description: Название склада + address: + type: string + description: Адрес склада + workTime: + type: string + description: Режим работы склада + acceptsQr: + type: boolean + description: | + Принимает ли склад QR-поставки: + - `true` — да + - `false` — нет + example: + ID: 210515 + name: Вёшки + address: Липкинское шоссе, 2-й километр, вл1с1, посёлок Вёшки, городской округ Мытищи, Московская область + workTime: 24/7 + acceptsQR: false + models.Good: + type: object + properties: + quantity: + type: integer + description: | + Суммарное количество товаров, планируемых для поставки. Максимум 999999 + minimum: 1 + maximum: 999999 + barcode: + type: string + description: Баркод из карточки товара + models.ErrorModel: + type: object + properties: + status: + type: integer + description: HTTP статус-код + title: + type: string + description: ID ошибки + detail: + type: string + description: Описание ошибки + requestID: + type: string + description: ID запроса + origin: + type: string + description: Сервис, вернувший ошибку + models.OptionsResultModel: + type: object + properties: + result: + type: array + items: + type: object + properties: + barcode: + type: string + description: Баркод из карточки товара + error: + type: object + description: Данные ошибки. При наличии + properties: + title: + type: string + description: ID ошибки + detail: + type: string + description: Описание ошибки + isError: + type: boolean + description: | + Наличие ошибки: + - `true` — ошибка есть + - Поля нет — ошибка отсутствует + warehouses: + type: array + nullable: true + description: Список складов. При наличии ошибки будет `null` + items: + type: object + properties: + warehouseID: + type: integer + description: ID склада. По нему можно получить [информацию о складе](./#tag/Informaciya-dlya-formirovaniya-postavok/paths/~1api~1v1~1warehouses/get) + canBox: + type: boolean + description: | + Тип упаковки **Короб**: + - `true` — доступен + - `false` — недоступен + canMonopallet: + type: boolean + description: | + Тип упаковки **Монопаллета**: + - `true` — доступен + - `false` — недоступен + canSupersafe: + type: boolean + description: | + Тип упаковки **Суперсейф**: + - `true` — доступен + - `false` — недоступен + requestID: + type: string + description: ID запроса при наличии ошибок + PassOffice: + type: object + description: Данные о складе, для которого требуется пропуск + properties: + name: + type: string + nullable: false + description: Название + example: Коледино + address: + type: string + nullable: false + description: Адрес + example: г. Подольск, д. Коледино, ул. Троицкая + id: + type: integer + format: int64 + nullable: false + description: ID + example: 1 + Error: + type: object + nullable: false + properties: + code: + type: string + description: Код ошибки + nullable: false + message: + type: string + description: Описание ошибки + nullable: false + data: + type: object + description: Дополнительные данные, обогащающие ошибку + nullable: true + error: + type: string + Next: + type: integer + format: int64 + nullable: false + description: Параметр пагинации. Содержит значение, которое необходимо указать в запросе для получения следующего пакета данных + Supply: + type: object + properties: + id: + type: string + nullable: false + description: Идентификатор поставки + example: WB-GI-1234567 + done: + type: boolean + nullable: false + description: Флаг закрытия поставки + createdAt: + type: string + format: date-time + nullable: false + description: Дата создания поставки (RFC3339) + example: '2022-05-04T07:56:29Z' + closedAt: + type: string + format: date-time + nullable: false + description: Дата закрытия поставки (RFC3339) + example: '2022-05-04T07:56:29Z' + scanDt: + type: string + nullable: false + format: date-time + description: Дата скана поставки (RFC3339) + example: '2022-05-04T07:56:29Z' + name: + type: string + nullable: false + description: Наименование поставки + example: Тестовая поставка + cargoType: + type: integer + nullable: false + description: | +
Тип поставки:
0 - признак отсутствует
1 - обычная
2 - СГТ (Содержит сверхгабаритные товары)
3 - КГТ (Содержит крупногабаритные товары). Не используется на данный момент.
+ enum: + - 0 + - 1 + - 2 + - 3 + Order: + type: object + properties: + id: + type: integer + format: int64 + nullable: false + description: Идентификатор сборочного задания в Маркетплейсе + example: 13833711 + rid: + type: string + nullable: false + description: Идентификатор сборочного задания в системе Wildberries + example: f884001e44e511edb8780242ac120002 + createdAt: + type: string + format: date-time + nullable: false + description: Дата создания сборочного задания (RFC3339) + example: '2022-05-04T07:56:29Z' + warehouseId: + type: integer + nullable: false + description: Идентификатор склада продавца, на который поступило сборочное задание + example: 658434 + supplyId: + type: string + description: Идентификатор поставки. Возвращается, если заказ закреплён за поставкой + offices: + type: array + nullable: true + description: Список офисов, куда следует привезти товар + items: + type: string + example: Калуга + address: + type: object + nullable: true + description: Детализованный адрес покупателя для доставки (если применимо). Некоторые из полей могут прийти пустыми из-за специфики адреса + properties: + fullAddress: + description: Адрес доставки. + type: string + example: Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42 + province: + type: string + nullable: false + description: Область + example: Челябинская область + deprecated: true + area: + type: string + nullable: false + description: Район + example: Челябинск + deprecated: true + city: + type: string + nullable: false + description: Город + example: Город + deprecated: true + street: + type: string + nullable: false + description: Улица + example: 51-я улица Арабкира + deprecated: true + home: + type: string + nullable: false + description: Номер дома + example: 10А + deprecated: true + flat: + type: string + nullable: false + description: Номер квартиры + example: '42' + deprecated: true + entrance: + type: string + nullable: false + description: Подъезд + example: '3' + deprecated: true + longitude: + type: number + format: float64 + nullable: false + description: Координата долготы + example: 44.519068 + latitude: + type: number + format: float64 + nullable: false + description: Координаты широты + example: 40.20192 + user: + type: object + nullable: true + description: Информация о покупателе (только для доставки силами продавца) + properties: + fio: + type: string + nullable: false + description: ФИО + phone: + type: string + nullable: false + description: Номер телефона + skus: + type: array + nullable: false + description: Массив баркодов товара + items: + type: string + example: '6665956397512' + price: + type: integer + nullable: false + description: Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. + convertedPrice: + type: integer + nullable: false + description: Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. + currencyCode: + type: integer + nullable: false + description: Код валюты продажи (ISO 4217) + convertedCurrencyCode: + type: integer + nullable: false + description: Код валюты страны продавца (ISO 4217) + orderUid: + type: string + description: Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID + deliveryType: + type: string + nullable: false + description: | +
+
Тип доставки:
+
fbs - доставка на склад Wildberries
+
dbs - доставка силами продавца
+
wbgo - доставка курьером WB
+
edbs - экспресс-доставка силами продавца
+
+ enum: + - dbs + - edbs + - fbs + - wbgo + nmId: + type: integer + nullable: false + description: Артикул WB + chrtId: + type: integer + nullable: false + description: Идентификатор размера товара в системе Wildberries + article: + type: string + nullable: false + description: Артикул продавца + example: one-ring-7548 + colorCode: + type: string + nullable: false + description: Код цвета (только для колеруемых товаров) + example: RAL 3017 + cargoType: + type: integer + nullable: false + description: | +
Тип товара:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
+ enum: + - 1 + - 2 + - 3 + OrderNew: + type: object + properties: + id: + type: integer + format: int64 + nullable: false + description: Идентификатор сборочного задания в Маркетплейсе + example: 13833711 + rid: + type: string + nullable: false + description: Идентификатор сборочного задания в системе Wildberries + example: f884001e44e511edb8780242ac120002 + createdAt: + type: string + format: date-time + nullable: false + description: Дата создания сборочного задания (RFC3339) + example: '2022-05-04T07:56:29Z' + warehouseId: + type: integer + nullable: false + description: Идентификатор склада продавца, на который поступило сборочное задание + example: 658434 + offices: + type: array + nullable: true + description: Список офисов, куда следует привезти товар + items: + type: string + example: Калуга + address: + type: object + nullable: true + description: Детализованный адрес покупателя для доставки (если применимо). Некоторые из полей могут прийти пустыми из-за специфики адреса + properties: + fullAddress: + description: Адрес доставки. + type: string + example: Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42 + province: + type: string + nullable: false + description: Область + example: Челябинская область + deprecated: true + area: + type: string + nullable: false + description: Район + example: Челябинск + deprecated: true + city: + type: string + nullable: false + description: Город + example: Город + deprecated: true + street: + type: string + nullable: false + description: Улица + example: 51-я улица Арабкира + deprecated: true + home: + type: string + nullable: false + description: Номер дома + example: 10А + deprecated: true + flat: + type: string + nullable: false + description: Номер квартиры + example: '42' + deprecated: true + entrance: + type: string + nullable: false + description: Подъезд + example: '3' + deprecated: true + longitude: + type: number + format: float64 + nullable: false + description: Координата долготы + example: 44.519068 + latitude: + type: number + format: float64 + nullable: false + description: Координаты широты + example: 40.20192 + requiredMeta: + description: | + Перечень метаданных, которые необходимо добавить в сборочное задание.
На данный момент обязательным к добавлению является только UIN, при его наличии в перечне. + type: array + items: + type: string + example: + - uin + user: + type: object + nullable: true + description: Информация о покупателе (только для доставки силами продавца) + properties: + fio: + type: string + nullable: false + description: ФИО + phone: + type: string + nullable: false + description: Номер телефона + skus: + type: array + nullable: false + description: Массив баркодов товара + items: + type: string + example: '6665956397512' + price: + type: integer + nullable: false + description: Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. + convertedPrice: + type: integer + nullable: false + description: Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. + currencyCode: + type: integer + nullable: false + description: Код валюты продажи (ISO 4217) + convertedCurrencyCode: + type: integer + nullable: false + description: Код валюты страны продавца (ISO 4217) + orderUid: + type: string + description: Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID + deliveryType: + type: string + nullable: false + description: | +
+
Тип доставки:
+
fbs - доставка на склад Wildberries
+
dbs - доставка силами продавца
+
edbs - экспресс-доставка силами продавца
+
wbgo - доставка курьером WB
+
+ enum: + - dbs + - fbs + - edbs + - wbgo + nmId: + type: integer + nullable: false + description: Артикул WB + chrtId: + type: integer + nullable: false + description: Идентификатор размера товара в системе Wildberries + article: + type: string + nullable: false + description: Артикул продавца + example: one-ring-7548 + colorCode: + type: string + nullable: false + description: Код цвета (только для колеруемых товаров) + example: RAL 3017 + cargoType: + type: integer + nullable: false + description: | +
Тип товара:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
+ enum: + - 1 + - 2 + - 3 + SupplyOrder: + type: object + properties: + id: + type: integer + format: int64 + nullable: false + description: Идентификатор сборочного задания в Маркетплейсе + example: 13833711 + rid: + type: string + nullable: false + description: Идентификатор сборочного задания в системе Wildberries + example: f884001e44e511edb8780242ac120002 + createdAt: + type: string + format: date-time + nullable: false + description: Дата создания сборочного задания (RFC3339) + example: '2022-05-04T07:56:29Z' + warehouseId: + type: integer + nullable: false + description: Идентификатор склада продавца, на который поступило сборочное задание + example: 658434 + offices: + type: array + nullable: true + description: Список офисов, куда следует привезти товар + items: + type: string + example: Калуга + user: + type: object + nullable: true + description: Информация о покупателе (только для доставки силами продавца) + properties: + fio: + type: string + nullable: false + description: ФИО + phone: + type: string + nullable: false + description: Номер телефона + skus: + type: array + nullable: false + description: Массив баркодов товара + items: + type: string + example: '6665956397512' + price: + type: integer + nullable: false + description: Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. + convertedPrice: + type: integer + nullable: false + description: Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. + currencyCode: + type: integer + nullable: false + description: Код валюты продажи (ISO 4217) + convertedCurrencyCode: + type: integer + nullable: false + description: Код валюты страны продавца (ISO 4217) + orderUid: + type: string + description: Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID + nmId: + type: integer + nullable: false + description: Артикул WB + chrtId: + type: integer + nullable: false + description: Идентификатор размера товара в системе Wildberries + article: + type: string + nullable: false + description: Артикул продавца + example: one-ring-7548 + colorCode: + type: string + nullable: false + description: Код цвета (только для колеруемых товаров) + example: RAL 3017 + cargoType: + type: integer + nullable: false + description: | +
Тип товара:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
+ enum: + - 1 + - 2 + - 3 + SupplyTrbx: + type: object + properties: + id: + description: ID короба. + type: string + example: WB-TRBX-1234567 + orders: + type: array + nullable: false + description: Массив идентификаторов заказа. + items: + type: integer + example: 1234567 + TrbxStickers: + type: object + properties: + barcode: + type: string + minLength: 1 + description: Закодированное значение этикетки. + example: $WBMP:1:123:1234567 + file: + type: string + format: byte + minLength: 1 + description: Полное представление этикетки в заданном формате. (кодировка base64) + example: U3dhZ2dlciByb2Nrcw== + Office: + type: object + description: Данные о складе WB + properties: + address: + type: string + nullable: false + description: Адрес + example: ул. Троицкая, Подольск, Московская обл. + name: + type: string + nullable: false + description: Название + example: Москва (Коледино) + city: + type: string + nullable: false + description: Город + example: Москва + id: + type: integer + format: int64 + nullable: false + description: ID + example: 15 + longitude: + type: number + format: float64 + nullable: false + description: Долгота + example: 55.386871 + latitude: + type: number + format: float64 + nullable: false + description: Широта + example: 37.588898 + cargoType: + description: | +
Тип товара, который принимает склад:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
+ type: integer + enum: + - 1 + - 2 + - 3 + example: 1 + deliveryType: + type: integer + description: | +
+
Тип доставки, который принимает склад:
+
1 - доставка на склад Wildberries
+
2 - доставка силами продавца
+
3 - доставка курьером WB
+
+ enum: + - 1 + - 2 + - 3 + example: 1 + selected: + type: boolean + nullable: false + description: Признак того, что склад уже выбран продавцом + Warehouse: + type: object + description: Данные о складе продавца + properties: + name: + type: string + nullable: false + description: Название склада продавца + example: ул. Троицкая, Подольск, Московская обл. + officeId: + type: integer + format: int64 + nullable: false + description: ID склада WB + example: 15 + id: + type: integer + format: int64 + nullable: false + description: ID склада продавца + example: 1 + cargoType: + description: | +
Тип товара, который принимает склад:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
+ type: integer + enum: + - 1 + - 2 + - 3 + example: 1 + deliveryType: + type: integer + description: | +
+
Тип доставки, который принимает склад:
+
1 - доставка на склад Wildberries
+
2 - доставка силами продавца
+
3 - доставка курьером WB
+
+ enum: + - 1 + - 2 + - 3 + example: 1 + Meta: + type: object + description: Метаданные заказа + properties: + imei: + type: string + nullable: true + description: IMEI + example: 123456789012345 + uin: + type: string + nullable: true + description: УИН + example: 1234567890123456 + gtin: + type: string + nullable: true + description: GTIN + example: 1234567890123 + sgtin: + type: string + nullable: true + description: КиЗ (Маркировка честного знака) + example: 1234567890123456 + Pass: + type: object + description: Данные о пропуске продавца + properties: + firstName: + type: string + nullable: false + description: Имя водителя + example: Александр + dateEnd: + type: string + nullable: false + description: Дата окончания действия пропуска + example: {} + lastName: + type: string + nullable: false + description: Фамилия водителя + example: Петров + carModel: + type: string + nullable: false + description: Марка машины + example: Lamborghini + carNumber: + type: string + nullable: false + description: Номер машины + example: A456BC123 + officeName: + type: string + nullable: false + description: Название склада + example: Коледино + officeAddress: + type: string + nullable: false + description: Адрес склада + example: г. Подольск, д. Коледино, ул. Троицкая + officeId: + type: integer + format: int64 + nullable: false + description: ID склада + example: 15 + id: + type: integer + format: int64 + nullable: false + description: ID пропуска + example: 1 + DetailReportItem: + type: object + properties: + realizationreport_id: + example: 1234567 + type: integer + description: Номер отчёта + date_from: + example: '2022-10-17T00:00:00Z' + type: string + format: date-time + description: Дата начала отчётного периода + date_to: + example: '2022-10-23T00:00:00Z' + type: string + format: date-time + description: Дата конца отчётного периода + create_dt: + example: '2022-10-24T14:40:32' + type: string + format: date-time + description: Дата формирования отчёта + currency_name: + example: руб + type: string + description: Валюта отчёта + suppliercontract_code: + example: null + type: object + description: Договор + rrd_id: + example: 1232610467 + type: integer + description: Номер строки + gi_id: + example: 123456 + type: integer + description: Номер поставки + subject_name: + example: Мини-печи + type: string + description: Предмет + nm_id: + example: 1234567 + type: integer + description: Артикул WB + brand_name: + example: BlahBlah + type: string + description: Бренд + sa_name: + example: MAB123 + type: string + description: Артикул продавца + ts_name: + example: '0' + type: string + description: Размер + barcode: + example: '1231312352310' + type: string + description: Баркод + doc_type_name: + example: Продажа + type: string + description: Тип документа + quantity: + type: integer + example: 1 + description: Количество + retail_price: + example: 1249 + type: number + description: Цена розничная + retail_amount: + example: 367 + type: number + description: Сумма продаж (возвратов) + sale_percent: + example: 68 + type: integer + description: Согласованная скидка + commission_percent: + example: 0.1324 + type: number + description: Процент комиссии + office_name: + example: Коледино + type: string + description: Склад + supplier_oper_name: + example: Продажа + type: string + description: Обоснование для оплаты + order_dt: + example: '2022-10-13T00:00:00Z' + type: string + format: date-time + description: Дата заказа.
Присылается с явным указанием часового пояса + sale_dt: + example: '2022-10-20T00:00:00Z' + type: string + format: date-time + description: Дата продажи.
Присылается с явным указанием часового пояса + rr_dt: + example: '2022-10-20T00:00:00Z' + type: string + format: date-time + description: Дата операции.
Присылается с явным указанием часового пояса + shk_id: + example: 1239159661 + type: integer + description: Штрих-код + retail_price_withdisc_rub: + example: 399.68 + type: number + description: Цена розничная с учетом согласованной скидки + delivery_amount: + example: 0 + type: integer + description: Количество доставок + return_amount: + example: 0 + type: integer + description: Количество возвратов + delivery_rub: + example: 0 + type: number + description: Стоимость логистики + gi_box_type_name: + example: Монопаллета + type: string + description: Тип коробов + product_discount_for_report: + example: 399.68 + type: number + description: Согласованный продуктовый дисконт + supplier_promo: + example: 0 + type: number + description: Промокод + rid: + example: 123722249253 + type: integer + description: Уникальный идентификатор заказа + ppvz_spp_prc: + example: 0.1581 + type: number + description: Скидка постоянного покупателя + ppvz_kvw_prc_base: + example: 0.15 + type: number + description: Размер кВВ без НДС, % базовый + ppvz_kvw_prc: + example: -0.0081 + type: number + description: Итоговый кВВ без НДС, % + sup_rating_prc_up: + type: number + description: Размер снижения кВВ из-за рейтинга + is_kgvp_v2: + type: number + description: Размер снижения кВВ из-за акции + ppvz_sales_commission: + example: -3.74 + type: number + description: Вознаграждение с продаж до вычета услуг поверенного, без НДС + ppvz_for_pay: + example: 376.99 + type: number + description: К перечислению продавцу за реализованный товар + ppvz_reward: + example: 0 + type: number + description: Возмещение за выдачу и возврат товаров на ПВЗ + acquiring_fee: + example: 14.89 + type: number + description: | + Возмещение издержек по эквайрингу.
Издержки WB за услуги эквайринга: вычитаются из вознаграждения WB и не влияют на доход продавца. + acquiring_bank: + example: Тинькофф + type: string + description: Наименование банка-эквайера + ppvz_vw: + example: -3.74 + type: number + description: Вознаграждение WB без НДС + ppvz_vw_nds: + example: -0.75 + type: number + description: НДС с вознаграждения WB + ppvz_office_id: + example: 105383 + type: integer + description: Номер офиса + ppvz_office_name: + example: Пункт самовывоза (ПВЗ) + type: string + description: Наименование офиса доставки + ppvz_supplier_id: + example: 186465 + type: integer + description: Номер партнера + ppvz_supplier_name: + example: ИП Жасмин + type: string + description: Партнер + ppvz_inn: + example: '010101010101' + type: string + description: ИНН партнера + declaration_number: + example: '' + type: string + description: Номер таможенной декларации + bonus_type_name: + example: Штраф МП. Невыполненный заказ (отмена клиентом после недовоза) + type: string + description: Обоснование штрафов и доплат.
Поле будет в ответе при наличии значения + sticker_id: + example: '1964038895' + type: string + description: Цифровое значение стикера, который клеится на товар в процессе сборки заказа по схеме "Маркетплейс" + site_country: + example: RU + type: string + description: Страна продажи + penalty: + example: 231.35 + type: number + description: Штрафы + additional_payment: + example: 0 + type: number + description: Доплаты + rebill_logistic_cost: + example: 1.349 + type: number + description: Возмещение издержек по перевозке. Поле будет в ответе при наличии значения + rebill_logistic_org: + example: ИП Иванов Иван Иванович(123456789012) + type: string + description: Организатор перевозки. Поле будет в ответе при наличии значения + kiz: + example: "0102900000376311210G2CIS?ehge)S\x1D91002A\x1D92F9Qof4FDo/31Icm14kmtuVYQzLypxm3HWkC1vQ/+pVVjm1dNAth1laFMoAGn7yEMWlTjxIe7lQnJqZ7TRZhlHQ==" + type: string + description: Код маркировки.
Поле будет в ответе при наличии значения + storage_fee: + type: number + description: Стоимость хранения + example: 12647.29 + deduction: + type: number + description: Прочие удержания/выплаты + example: 6354 + acceptance: + type: number + description: Стоимость платной приёмки + example: 865 + srid: + example: 0f1c3999172603062979867564654dac5b702849 + type: string + description: | + Уникальный идентификатор заказа. + + Примечание для использующих API Marketplace: `srid` равен `rid` в ответах методов сборочных заданий. + report_type: + type: integer + description: "Тип отчёта:\n\n * `1`\_— стандартный\n * `2`\_— для уведомления о\_выкупе\n" + example: 1 + IncomesItem: + type: object + properties: + incomeId: + type: integer + description: Номер поставки + number: + type: string + maxLength: 40 + description: Номер УПД + date: + type: string + format: date + description: Дата поступления. Если часовой пояс не указан, то берется Московское время UTC+3. + lastChangeDate: + type: string + format: date-time + description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе. Если часовой пояс не указан, то берется Московское время UTC+3. + supplierArticle: + type: string + maxLength: 75 + description: Артикул продавца + techSize: + type: string + maxLength: 30 + description: Размер товара (пример S, M, L, XL, 42, 42-43) + barcode: + type: string + maxLength: 30 + description: Бар-код + quantity: + type: integer + description: Количество + totalPrice: + type: number + description: Цена из УПД + dateClose: + type: string + format: date + description: Дата принятия (закрытия) в WB. Если часовой пояс не указан, то берется Московское время UTC+3 + warehouseName: + type: string + maxLength: 50 + description: Название склада + nmId: + type: integer + description: Артикул WB + status: + type: string + maxLength: 50 + enum: + - Принято + description: Текущий статус поставки + StocksItem: + type: object + properties: + lastChangeDate: + type: string + format: date-time + description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе. Если часовой пояс не указан, то берется Московское время (UTC+3) + warehouseName: + type: string + maxLength: 50 + description: Название склада + supplierArticle: + type: string + maxLength: 75 + description: Артикул продавца + nmId: + type: integer + description: Артикул WB + barcode: + type: string + maxLength: 30 + description: Баркод + quantity: + type: integer + description: Количество, доступное для продажи (сколько можно добавить в корзину) + inWayToClient: + type: integer + description: В пути к клиенту + inWayFromClient: + type: integer + description: В пути от клиента + quantityFull: + type: integer + description: Полное (непроданное) количество, которое числится за складом (= `quantity` + в пути) + category: + type: string + maxLength: 50 + description: Категория + subject: + type: string + maxLength: 50 + description: Предмет + brand: + type: string + maxLength: 50 + description: Бренд + techSize: + type: string + maxLength: 30 + description: Размер + Price: + type: number + description: Цена + Discount: + type: number + description: Скидка + isSupply: + type: boolean + description: Договор поставки (внутренние технологические данные) + isRealization: + type: boolean + description: Договор реализации (внутренние технологические данные) + SCCode: + type: string + maxLength: 50 + description: Код контракта (внутренние технологические данные) + OrdersItem: + type: object + properties: + date: + type: string + format: date-time + description: Дата и время заказа. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берется Московское время (UTC+3). + lastChangeDate: + type: string + format: date-time + description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берется Московское время (UTC+3). + warehouseName: + type: string + maxLength: 50 + description: Склад отгрузки + countryName: + type: string + maxLength: 200 + description: Страна + oblastOkrugName: + type: string + maxLength: 200 + description: Округ + regionName: + type: string + maxLength: 200 + description: Регион + supplierArticle: + type: string + maxLength: 75 + description: Артикул продавца + nmId: + type: integer + description: Артикул WB + barcode: + type: string + maxLength: 30 + description: Баркод + category: + type: string + maxLength: 50 + description: Категория + subject: + type: string + maxLength: 50 + description: Предмет + brand: + type: string + maxLength: 50 + description: Бренд + techSize: + type: string + maxLength: 30 + description: Размер товара + incomeID: + type: integer + description: Номер поставки + isSupply: + type: boolean + description: Договор поставки + isRealization: + type: boolean + description: Договор реализации + totalPrice: + type: number + description: Цена без скидок + discountPercent: + type: integer + description: Скидка продавца + spp: + type: number + description: Скидка WB + finishedPrice: + type: number + description: Цена с учетом всех скидок, кроме суммы по WB Кошельку + priceWithDisc: + type: number + description: Цена со скидкой продавца (= `totalPrice` * (1 - `discountPercent`/100)) + isCancel: + type: boolean + description: Отмена заказа. true - заказ отменен + cancelDate: + type: string + format: date-time + description: Дата и время отмены заказа. Если заказ не был отменен, то "0001-01-01T00:00:00".Если часовой пояс не указан, то берется Московское время UTC+3. + orderType: + type: string + description: | + Тип заказа
  • `Клиентский` — заказ, поступивший от покупателя
  • `Возврат Брака` — возврат товара продавцу
  • `Принудительный возврат` — возврат товара продавцу
  • `Возврат обезлички` — возврат товара продавцу
  • `Возврат Неверного Вложения` — возврат товара продавцу
  • `Возврат Продавца` — возврат товара продавцу
+ sticker: + type: string + description: Идентификатор стикера + gNumber: + type: string + maxLength: 50 + description: Номер заказа + srid: + type: string + description: | + Уникальный идентификатор заказа.
Примечание для использующих API Маркетплейс: `srid` равен `rid` в ответах методов сборочных заданий. + SalesItem: + type: object + properties: + date: + type: string + format: date-time + description: Дата и время продажи. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берется Московское время (UTC+3). + lastChangeDate: + type: string + format: date-time + description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берется Московское время (UTC+3). + warehouseName: + type: string + maxLength: 50 + description: Склад отгрузки + countryName: + type: string + maxLength: 200 + description: Страна + oblastOkrugName: + type: string + maxLength: 200 + description: Округ + regionName: + type: string + maxLength: 200 + description: Регион + supplierArticle: + type: string + maxLength: 75 + description: Артикул продавца + nmId: + type: integer + description: Артикул WB + barcode: + type: string + maxLength: 30 + description: Баркод + category: + type: string + maxLength: 50 + description: Категория + subject: + type: string + maxLength: 50 + description: Предмет + brand: + type: string + maxLength: 50 + description: Бренд + techSize: + type: string + maxLength: 30 + description: Размер товара + incomeID: + type: integer + description: Номер поставки + isSupply: + type: boolean + description: Договор поставки + isRealization: + type: boolean + description: Договор реализации + totalPrice: + type: number + description: Цена без скидок + discountPercent: + type: integer + description: Скидка продавца + spp: + type: number + description: Скидка WB + paymentSaleAmount: + type: integer + description: Оплачено с WB Кошелька + forPay: + type: number + description: К перечислению продавцу + finishedPrice: + type: number + description: Фактическая цена с учетом всех скидок (к взиманию с покупателя) + priceWithDisc: + type: number + description: Цена со скидкой продавца, от которой считается сумма к перечислению продавцу `forPay` (= `totalPrice` * (1 - `discountPercent`/100)) + saleID: + type: string + maxLength: 15 + description: | + Уникальный идентификатор продажи/возврата
  • `S**********` — продажа
  • `R**********` — возврат (на склад WB)
+ orderType: + type: string + description: | + Тип заказа
  • `Клиентский` — заказ, поступивший от покупателя
  • `Возврат Брака` — возврат товара продавцу
  • `Принудительный возврат` — возврат товара продавцу
  • `Возврат обезлички` — возврат товара продавцу
  • `Возврат Неверного Вложения` — возврат товара продавцу
  • `Возврат Продавца` — возврат товара продавцу
+ sticker: + type: string + description: Идентификатор стикера + gNumber: + type: string + maxLength: 50 + description: Номер заказа + srid: + type: string + description: | + Уникальный идентификатор заказа.
Примечание для использующих API Маркетплейс: `srid` равен `rid` в ответах методов сборочных заданий. + responseErrorStatistics: + type: object + properties: + errors: + type: array + items: + type: string + Response429: + type: object + properties: + code: + description: '' + type: integer + message: + description: '' + type: string + example: + code: 429 + message: 07e4668e-ac2242c5c8c5-UK8XeP32NbduV too many requests with this user ID for GET /adv/v1/XXX; throttled by RL-003-XXrpm + ExciseReportRequest: + type: object + properties: + countries: + type: array + description: | + Код стран по стандарту ISO 3166-2. Чтобы получить данные по всем странам, оставьте параметр пустым + items: + type: string + enum: + - AM + - BY + - KG + - KZ + - RU + - UZ + example: + countries: + - AM + - RU + ExciseReportResponse: + type: object + properties: + response: + $ref: '#/components/schemas/models.ExciseReportResponse' + models.ExciseReportResponse: + type: object + properties: + data: + $ref: '#/components/schemas/models.ExciseReportResponseData' + models.ExciseReportResponseData: + type: array + items: + type: object + properties: + name: + type: string + description: Страна покупателя + example: Россия + price: + type: number + description: Цена товара, с НДС + example: 100 + currency_name_short: + type: string + description: Валюта + example: руб + excise_short: + type: string + description: Код маркировки + example: 0102900254680370215_Re/=lSbNiGD + barcode: + type: string + description: Баркод + example: 2038893425820 + nm_id: + type: integer + description: Артикул Wildberries + example: 169085355 + operation_type_id: + type: integer + description: | + Тип операции, если есть: + + * `1` — вывод из оборота + * `2` — возврат в оборот + example: 1 + fiscal_doc_number: + type: integer + description: Номер фискального документа (чека полного расчёта), если есть + example: 12345678 + fiscal_dt: + type: string + description: Дата фискализации (дата в чеке), если есть, `ГГГГ-ММ-ДД` + example: {} + fiscal_drive_number: + type: string + description: Номер фискального накопителя, если есть + rid: + type: integer + description: | + `Rid` + example: 606217433440 + srid: + type: string + description: | + `Srid` + example: 7513432034713632943.1.0 + ResponsePaidStorage: + type: array + items: + type: object + properties: + date: + type: string + description: Дата, за которую был расчёт или перерасчёт + logWarehouseCoef: + type: number + description: Коэффициент логистики и хранения + officeId: + type: integer + description: ID склада + warehouse: + type: string + description: Название склада + warehouseCoef: + type: number + description: Коэффициент склада + giId: + type: integer + description: ID поставки + chrtId: + type: integer + description: Идентификатор размера для этого артикула Wildberries + size: + type: string + description: Размер (`techSize` в карточке товара) + barcode: + type: string + description: Баркод + subject: + type: string + description: Предмет + brand: + type: string + description: Бренд + vendorCode: + type: string + description: Артикул продавца + nmId: + type: integer + description: Артикул Wildberries + volume: + type: number + description: Объём товара + calcType: + type: string + description: Способ расчёта + warehousePrice: + type: number + description: Сумма хранения + barcodesCount: + type: integer + description: Количество единиц товара (штук), подлежащих тарифицированию за расчётные сутки + palletPlaceCode: + type: integer + description: Код паллетоместа + palletCount: + type: number + description: Количество паллет + originalDate: + type: string + description: Если был перерасчёт, это дата первоначального расчёта. Если перерасчёта не было, совпадает с `date` + loyaltyDiscount: + type: number + description: "Скидка программы лояльности,\_₽" + tariffFixDate: + type: string + description: Дата фиксации тарифа + tariffLowerDate: + type: string + description: Дата понижения тарифа + example: + - date: '2023-10-01' + logWarehouseCoef: 0 + officeId: 507 + warehouse: Коледино + warehouseCoef: 1.7 + giId: 123456 + chrt_id: 1234567 + size: '0' + barcode: '' + subject: Маски одноразовые + brand: 1000 Каталог + vendorCode: Артикул_продавца + nmId: 1234567 + volume: 12 + calcType: 'короба: без габаритов' + warehousePrice: 7.65 + barcodesCount: 1 + palletPlaceCode: 0 + palletCount: 0 + originalDate: '2023-10-01' + loyaltyDiscount: 10 + tariffFixDate: '2023-10-01' + tariffLowerDate: '2023-11-01' + GetTasksResponse: + type: object + properties: + data: + $ref: '#/components/schemas/GetTasksResponseData' + GetTasksResponseData: + type: object + properties: + id: + type: string + description: ID задания + status: + type: string + description: | + Статус задания: + + * `new` — новое + * `processing` — обрабатывается + * `done` — отчёт готов + * `purged` — отчёт удалён + * `canceled` — отклонено + CreateTaskResponse: + type: object + properties: + data: + $ref: '#/components/schemas/CreateTaskResponseData' + CreateTaskResponseData: + type: object + properties: + taskId: + type: string + description: ID задания на генерацию + ErrorResponse: + type: object + required: + - errors + properties: + errors: + type: array + items: + type: string + responseError: + type: object + properties: + data: + type: array + items: + type: object + example: null + error: + description: Флаг ошибки + type: boolean + example: true + errorText: + description: Описание ошибки + type: string + example: Текст ошибки + additionalErrors: + description: Дополнительные ошибки + type: array + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + response401: + type: object + properties: + code: + type: integer + description: Код ошибки + example: 401 + message: + description: Описание ошибки + type: string + example: Текст ошибки + response429: + type: object + properties: + code: + type: integer + description: Код ошибки + example: 429 + message: + description: Описание ошибки + type: string + example: Текст ошибки + response429Daily: + type: object + properties: + data: + type: array + items: + type: object + example: null + error: + description: Флаг ошибки + type: boolean + example: true + errorText: + description: Описание ошибки + type: string + example: Превышен лимит отчётов в сутки. Максимальное количество отчётов - 20 + additionalErrors: + description: Дополнительные ошибки + type: array + example: null + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + NmReportDetailRequest: + type: object + required: + - page + - period + properties: + brandNames: + type: array + description: Название бренда + items: + type: string + example: Some + objectIDs: + type: array + description: Идентификатор предмета + items: + type: integer + format: int32 + example: 358 + tagIDs: + type: array + description: Идентификатор тега + items: + type: integer + format: int32 + example: 123 + nmIDs: + type: array + description: Артикул WB + items: + type: integer + format: int32 + example: 1234567 + timezone: + type: string + description: | + Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. + example: Europe/Moscow + period: + type: object + description: Период + properties: + begin: + description: Начало периода + type: string + format: time-date + example: {} + end: + description: Конец периода + type: string + format: time-date + example: {} + orderBy: + description: | + Параметры сортировки. + Если не указано, то по умолчанию используется значение "openCard" и сортировка по убыванию. +
+
Все виды сортировки field:
+
openCard — по открытию карточки (переход на страницу товара)
+
addToCart — по добавлениям в корзину
+
orders — по кол-ву заказов
+
avgRubPrice — по средней цене в рублях
+
ordersSumRub — по сумме заказов в рублях
+
stockMpQty — по кол-ву остатков маркетплейса шт.
+
stockWbQty — по кол-ву остатков на складе шт.
+
cancelSumRub — сумме возвратов в рублях
+
cancelCount — по кол-ву возвратов
+
buyoutCount — по кол-ву выкупов
+
buyoutSumRub — по сумме выкупов
+
+ type: object + properties: + field: + description: Вид сортировки + type: string + example: ordersSumRub + mode: + description: | + `asc` — по возрастанию, `desc` — по убыванию + type: string + example: asc + page: + description: Страница + type: integer + format: int32 + example: 1 + NmReportGroupedRequest: + type: object + required: + - page + - period + properties: + objectIDs: + type: array + description: Идентификатор предмета + items: + type: integer + format: int32 + example: 358 + brandNames: + description: Название бренда + type: array + items: + type: string + example: Some + tagIDs: + description: Идентификатор тега + type: array + items: + type: integer + format: int32 + example: 123 + timezone: + description: | + Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. + type: string + example: Europe/Moscow + period: + description: Период + type: object + properties: + begin: + description: Начало периода + type: string + example: {} + end: + description: Конец периода + type: string + example: {} + orderBy: + description: | + Параметры сортировки. + Если не указано, то по умолчанию используется значение "openCard" и сортировка по убыванию. +
+
Все виды сортировки field:
+
openCard — по открытию карточки (переход на страницу товара)
+
addToCart — по добавлениям в корзину
+
orders — по кол-ву заказов
+
avgRubPrice — по средней цене в рублях
+
ordersSumRub — по сумме заказов в рублях
+
stockMpQty — по кол-ву остатков маркетплейса шт.
+
stockWbQty — по кол-ву остатков на складе шт.
+
+ type: object + properties: + field: + description: Вид сортировки + type: string + example: ordersSumRub + mode: + description: | + `asc` — по возрастанию, `desc` — по убыванию + type: string + example: asc + page: + description: Страница + type: integer + format: int32 + example: 1 + NmReportDetailHistoryRequest: + type: object + required: + - nmIDs + - period + properties: + nmIDs: + description: Артикул Wildberries (максимум 20) + type: array + items: + type: integer + format: int32 + example: 1234567 + period: + description: Период + type: object + properties: + begin: + description: Начало периода + type: string + format: date + example: {} + end: + description: Конец периода + type: string + format: date + example: {} + timezone: + type: string + description: | + Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. + example: Europe/Moscow + aggregationLevel: + description: | + Тип агрегации. Если не указано, то по умолчанию используется агрегация по дням.
Доступные уровни агрегации `day`, `week` + type: string + example: day + NmReportGroupedHistoryRequest: + type: object + required: + - period + properties: + objectIDs: + description: Идентификатор предмета + type: array + items: + type: integer + format: int32 + example: 358 + brandNames: + description: Название бренда + type: array + items: + type: string + example: Some + tagIDs: + description: Идентификатор тега + type: array + items: + type: integer + format: int32 + example: 123 + period: + description: Период + type: object + properties: + begin: + description: Начало периода + type: string + format: date + example: {} + end: + description: Конец периода + type: string + format: date + example: {} + timezone: + description: | + Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. + type: string + example: Europe/Moscow + aggregationLevel: + description: | + Тип агрегации. Если не указано, то по умолчанию используется агрегация по дням.
Доступные уровни агрегации `day`, `week` + type: string + example: day + NmReportDetailResponse: + type: object + properties: + data: + type: object + properties: + page: + description: Страница + type: integer + format: int32 + example: 1 + isNextPage: + description: Есть ли следующая страница (false - нет, true - есть) + type: boolean + cards: + type: array + items: + type: object + properties: + nmID: + description: Артикул WB + type: integer + format: int32 + example: 1234567 + vendorCode: + description: Артикул продавца + type: string + example: supplierVendor + brandName: + description: Название бренд + type: string + example: Some + tags: + description: Теги + type: array + items: + type: object + properties: + id: + description: Идентификатор тега + type: integer + format: int32 + example: 123 + name: + description: Название тега + type: string + example: Sale + object: + description: Предмет + type: object + properties: + id: + description: Идентификатор предмета + type: integer + format: int32 + example: 447 + name: + description: Название предмета + type: string + example: Кондиционеры для волос + statistics: + description: Статистика + type: object + properties: + selectedPeriod: + description: Запрашиваемый период + type: object + properties: + begin: + description: Начало периода + type: string + example: {} + end: + description: Конец периода + type: string + example: {} + openCardCount: + description: Количество переходов в карточку товара + type: integer + format: int32 + example: 0 + addToCartCount: + description: Положили в корзину, штук + type: integer + format: int32 + example: 0 + ordersCount: + description: Заказали товаров, шт + type: integer + format: int32 + example: 0 + ordersSumRub: + description: Заказали на сумму, руб. + type: integer + format: int32 + example: 0 + buyoutsCount: + description: Выкупили товаров, шт. + type: integer + format: int32 + example: 0 + buyoutsSumRub: + description: Выкупили на сумму, руб. + type: integer + format: int32 + example: 0 + cancelCount: + description: Отменили товаров, шт. + type: integer + format: int32 + example: 0 + cancelSumRub: + description: Отменили на сумму, руб. + type: integer + format: int32 + example: 0 + avgPriceRub: + description: Средняя цена, руб. + type: integer + format: int32 + example: 0 + avgOrdersCountPerDay: + description: Среднее количество заказов в день, шт. + type: integer + format: int32 + example: 0 + conversions: + description: Конверсии + type: object + properties: + addToCartPercent: + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + type: integer + format: int32 + example: 0 + cartToOrderPercent: + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + type: integer + format: int32 + example: 0 + buyoutsPercent: + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + type: integer + format: int32 + example: 0 + previousPeriod: + description: Статистика за предыдущие 30 дней + type: object + properties: + begin: + type: string + description: Начало периода + example: {} + end: + type: string + description: Конец периода + example: {} + openCardCount: + description: Количество переходов в карточку товара + type: integer + format: int32 + example: 0 + addToCartCount: + description: Положили в корзину, штук + type: integer + format: int32 + example: 0 + ordersCount: + description: Заказали товаров, штук + type: integer + format: int32 + example: 1 + ordersSumRub: + description: Заказали на сумму, руб. + type: integer + format: int32 + example: 1262 + buyoutsCount: + description: Выкупили товаров, шт. + type: integer + format: int32 + example: 1 + buyoutsSumRub: + description: Выкупили на сумму, руб. + type: integer + format: int32 + example: 1262 + cancelCount: + description: Отменили товаров, штук + type: integer + format: int32 + example: 0 + cancelSumRub: + description: Отменили на сумму, руб. + type: integer + format: int32 + example: 0 + avgPriceRub: + description: Средняя цена, руб. + type: integer + format: int32 + example: 1262 + avgOrdersCountPerDay: + description: Среднее количество заказов в день, шт. + type: number + example: 0.04 + conversions: + description: Конверсии + type: object + properties: + addToCartPercent: + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + type: integer + format: int32 + example: 0 + cartToOrderPercent: + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + type: integer + format: int32 + example: 0 + buyoutsPercent: + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + type: integer + format: int32 + example: 100 + periodComparison: + description: Сравнение двух периодов, в процентах + type: object + properties: + openCardDynamics: + description: Динамика переходов в карточку товара + type: integer + format: int32 + example: 0 + addToCartDynamics: + description: Динамика добавлений в корзину + type: integer + format: int32 + example: 0 + ordersCountDynamics: + description: Динамика количества заказов + type: integer + format: int32 + example: -100 + ordersSumRubDynamics: + description: Динамика суммы заказов, рублей + type: integer + format: int32 + example: -100 + buyoutsCountDynamics: + description: Динамика выкупов, штук + type: integer + format: int32 + example: -100 + buyoutsSumRubDynamics: + description: Динамика суммы выкупов, рублей + type: integer + format: int32 + example: -100 + cancelCountDynamics: + description: Динамика отмен товаров, штук + type: integer + format: int32 + example: 0 + cancelSumRubDynamics: + description: Динамика сумм отмен товаров, рублей + type: integer + format: int32 + example: 0 + avgOrdersCountPerDayDynamics: + type: integer + format: int32 + example: 0 + description: Динамика среднего количества заказов в день + avgPriceRubDynamics: + type: integer + format: int32 + example: -100 + description: Динамика средней цены на товары. Учитываются скидки для акций и WB скидка. + conversions: + description: Конверсии + type: object + properties: + addToCartPercent: + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + type: integer + format: int32 + example: 0 + cartToOrderPercent: + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + type: integer + format: int32 + example: 0 + buyoutsPercent: + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + type: integer + format: int32 + example: -100 + stocks: + description: Остатки + type: object + properties: + stocksMp: + description: Остатки МП, шт. (Общее количество остатков на складе продавца) + type: integer + format: int32 + example: 0 + stocksWb: + description: Остатки на складах Wildberries (Общее количество остатков на складах Wildberries) + type: integer + format: int32 + example: 0 + error: + type: boolean + description: Флаг ошибки + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: array + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + NmReportGroupedResponse: + type: object + properties: + data: + type: object + properties: + page: + description: Страница + type: integer + format: int32 + example: 1 + isNextPage: + description: Есть ли следующая страница (false - нет, true - есть) + type: boolean + groups: + type: array + items: + type: object + properties: + brandName: + description: Название бренда + type: string + example: Some + tags: + type: array + items: + type: object + properties: + id: + description: Идентификатор тега + type: integer + format: int32 + example: 123 + name: + description: Название тега + type: string + example: Sale + object: + type: object + description: Предмет + properties: + id: + description: Идентификатор предмета + type: integer + format: int32 + example: 1668 + name: + type: string + example: Воски для волос + description: Название предмета + statistics: + type: object + properties: + selectedPeriod: + description: Запрашиваемый период + type: object + properties: + begin: + description: Начало периода + type: string + example: {} + end: + description: Конец периода + type: string + example: {} + openCardCount: + description: Количество переходов в КТ + type: integer + format: int32 + example: 0 + addToCartCount: + description: Положили в корзину, штук + type: integer + format: int32 + example: 0 + ordersCount: + description: Заказали товаров, штук + type: integer + format: int32 + example: 0 + ordersSumRub: + description: Заказали на сумму, руб. + type: integer + format: int32 + example: 0 + buyoutsCount: + description: Выкупили товаров, штук + type: integer + format: int32 + example: 0 + buyoutsSumRub: + description: Выкупили на сумму, руб. + type: integer + format: int32 + example: 0 + cancelCount: + description: Отменили товаров, штук + type: integer + format: int32 + example: 0 + cancelSumRub: + description: Отменили на сумму, руб + type: integer + format: int32 + example: 0 + avgPriceRub: + description: Средняя цена, руб. + type: integer + format: int32 + example: 0 + avgOrdersCountPerDay: + description: Среднее количество заказов в день, шт. + type: integer + format: int32 + example: 0 + conversions: + description: Конверсии + type: object + properties: + addToCartPercent: + type: integer + format: int32 + example: 0 + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + cartToOrderPercent: + type: integer + format: int32 + example: 0 + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + buyoutsPercent: + type: integer + format: int32 + example: 0 + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + previousPeriod: + description: Статистика за предыдущие 30 дней + type: object + properties: + begin: + description: Начало периода + type: string + example: {} + end: + description: Конец периода + type: string + example: {} + openCardCount: + description: Количество переходов в КТ + type: integer + format: int32 + example: 466 + addToCartCount: + description: Положили в корзину, штук + type: integer + format: int32 + example: 72 + ordersCount: + description: Заказали товаров, штук + type: integer + format: int32 + example: 84 + ordersSumRub: + description: Заказали на сумму, руб. + type: number + example: 127060.42 + buyoutsCount: + description: Выкупили товаров, штук + type: integer + format: int32 + example: 69 + buyoutsSumRub: + description: Выкупили на сумму, руб. + type: number + example: 104898.42 + cancelCount: + description: Отменили товаров, штук + type: integer + format: int32 + example: 13 + cancelSumRub: + description: Отменили на сумму, руб + type: integer + format: int32 + example: 0 + avgPriceRub: + description: Средняя цена, руб. + type: number + example: 1562.65 + avgOrdersCountPerDay: + description: Среднее количество заказов в день, шт. + type: number + example: 0.72 + conversions: + description: Конверсии + type: object + properties: + addToCartPercent: + type: number + example: 15.5 + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + cartToOrderPercent: + type: number + example: 116.7 + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + buyoutsPercent: + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + type: number + example: 84.1 + periodComparison: + description: Сравнение двух периодов, в процентах + type: object + properties: + openCardDynamics: + description: Динамика переходов в карточку товара + type: integer + format: int32 + example: -100 + addToCartDynamics: + description: Динамика добавлений в корзину + type: integer + format: int32 + example: -100 + ordersCountDynamics: + description: Динамика количества заказов + type: integer + format: int32 + example: -100 + ordersSumRubDynamics: + description: Динамика суммы заказов, рублей + type: integer + format: int32 + example: -100 + buyoutsCountDynamics: + description: Динамика выкупов, штук + type: integer + format: int32 + example: -100 + buyoutsSumRubDynamics: + description: Динамика суммы выкупов, рублей + type: integer + format: int32 + example: -100 + cancelCountDynamics: + description: Динамика отмен товаров, штук + type: integer + format: int32 + example: 0 + cancelSumRubDynamics: + description: Динамика сумм отмен товаров, рублей + type: integer + format: int32 + example: 0 + avgOrdersCountPerDayDynamics: + type: integer + format: int32 + example: 0 + description: Динамика среднего количества заказов в день + avgPriceRubDynamics: + type: integer + format: int32 + example: -100 + description: | + Динамика средней цены на товары. Учитываются скидки для акций и WB скидка. + conversions: + description: Конверсии + type: object + properties: + addToCartPercent: + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + type: integer + format: int32 + example: -100 + cartToOrderPercent: + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + type: integer + format: int32 + example: -100 + buyoutsPercent: + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + type: integer + format: int32 + example: -100 + error: + type: boolean + description: Флаг ошибки + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: array + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + NmReportDetailHistoryResponse: + type: object + properties: + data: + type: array + items: + type: object + properties: + nmID: + type: integer + format: int32 + example: 1234567 + description: Артикул WB + imtName: + type: string + example: Наименование КТ + description: Наименование КТ + vendorCode: + type: string + example: supplierVendor + description: Артикул продавца + history: + type: array + items: + type: object + properties: + dt: + type: string + format: date + example: {} + description: Дата + openCardCount: + type: integer + format: int32 + example: 26 + description: Количество переходов в карточку товара + addToCartCount: + type: integer + format: int32 + example: 1 + description: Положили в корзину, штук + ordersCount: + type: integer + format: int32 + example: 0 + description: Заказали товаров, шт + ordersSumRub: + type: integer + format: int32 + example: 0 + description: Заказали на сумму, руб. + buyoutsCount: + type: integer + format: int32 + example: 0 + description: Выкупили товаров, шт. + buyoutsSumRub: + type: integer + format: int32 + example: 0 + description: Выкупили на сумму, руб. + buyoutPercent: + type: integer + format: int32 + example: 0 + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + addToCartConversion: + type: number + example: 3.8 + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + cartToOrderConversion: + type: integer + format: int32 + example: 0 + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + error: + type: boolean + description: Флаг ошибки + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: array + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + NmReportGroupedHistoryResponse: + type: object + properties: + data: + type: array + items: + type: object + properties: + object: + description: Предмет + type: object + properties: + id: + type: integer + format: int32 + example: 358 + description: Идентификатор предмета + name: + type: string + example: Шампуни + description: Название предмета + brandName: + type: string + example: Some + description: Название бренда + tag: + description: Тег + type: object + properties: + id: + type: integer + format: int32 + example: 123 + description: Идентификатор тега + name: + type: string + example: Sale + description: Название тега + history: + type: array + items: + type: object + properties: + dt: + type: string + format: date + example: {} + openCardCount: + type: integer + format: int32 + example: 0 + description: Количество переходов в карточку товара + addToCartCount: + type: integer + format: int32 + example: 0 + description: Положили в корзину, штук + ordersCount: + type: integer + format: int32 + example: 0 + description: Заказали товаров, шт + ordersSumRub: + type: integer + format: int32 + example: 0 + description: Заказали на сумму, руб. + buyoutsCount: + type: integer + format: int32 + example: 0 + description: Выкупили товаров, шт. + buyoutsSumRub: + type: integer + format: int32 + example: 0 + description: Выкупили на сумму, руб. + buyoutPercent: + type: integer + format: int32 + example: 0 + description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + addToCartConversion: + type: integer + format: int32 + example: 0 + description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + cartToOrderConversion: + type: integer + format: int32 + example: 0 + description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + error: + type: boolean + description: Флаг ошибки + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: array + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + BySelectedNmIDReq: + type: object + required: + - id + - reportType + properties: + id: + description: Идентификатор отчёта в UUID-формате. Генерируется продавцом самостоятельно + type: string + format: uuid + reportType: + description: Тип отчёта — `DETAIL_HISTORY_REPORT` + type: string + userReportName: + type: string + description: Название отчёта (если не указано, сформируется автоматически) + params: + description: Параметры отчёта + type: object + required: + - startDate + - endDate + properties: + nmIDs: + type: array + minItems: 0 + maxItems: 1000 + description: | + `nmID `, по которым составить отчёт. Оставьте пустым, чтобы получить отчёт по всем товарам + items: + type: integer + format: int64 + subjectIDs: + type: array + description: Идентификаторы предметов + items: + type: integer + format: int64 + brandNames: + type: array + description: Бренды + items: + type: string + tagIDs: + type: array + description: Идентификаторы тегов + items: + type: integer + format: int64 + startDate: + type: string + description: Начало периода + format: date + endDate: + type: string + description: Конец периода + format: date + timezone: + type: string + description: | + Временная зона, по умолчанию Europe/Moscow + aggregationLevel: + type: string + description: | + Как сгруппировать данные (по умолчанию по дням): + + * `day` — по дням + * `week` — по неделям + * `month` — по месяцам + enum: + - day + - week + - month + skipDeletedNm: + description: Скрыть удалённые номенклатуры + type: boolean + GroupedByObjectsBrandsAndTagsReq: + type: object + required: + - id + - reportType + properties: + id: + description: Идентификатор отчёта в UUID-формате. Генерируется продавцом самостоятельно + type: string + format: uuid + reportType: + description: Тип отчёта — `GROUPED_HISTORY_REPORT` + type: string + userReportName: + type: string + description: Название отчёта (если не указано, сформируется автоматически) + params: + description: Параметры отчёта + type: object + required: + - startDate + - endDate + properties: + subjectIDs: + type: array + description: Идентификаторы предметов + items: + type: integer + format: int64 + brandNames: + type: array + description: Бренды + items: + type: string + tagIDs: + type: array + description: Идентификаторы тегов + items: + type: integer + format: int64 + startDate: + type: string + description: Начало периода + format: date + endDate: + type: string + description: Конец периода + format: date + timezone: + type: string + description: | + Временная зона, по умолчанию Europe/Moscow + aggregationLevel: + type: string + description: | + Как сгруппировать данные (по умолчанию по дням): + + * `day` — по дням + * `week` — по неделям + * `month` — по месяцам + skipDeletedNm: + description: Скрыть удалённые `nmID` + type: boolean + NmReportRetryReportRequest: + properties: + downloadId: + type: string + description: ID отчёта + format: uuid + example: 06eea887-9d9f-491f-b16a-bb1766fcb8d2 + NmReportCreateReportResponse: + type: object + properties: + data: + type: string + description: Уведомление, что началась генерация отчёта + example: Началось формирование файла/отчета + error: + type: boolean + description: Флаг ошибки + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: array + example: null + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + NmReportGetReportsResponse: + type: object + properties: + data: + type: array + items: + type: object + properties: + id: + description: Идентификатор отчёта + type: string + format: uuid + example: 06eae887-9d9f-491f-b16a-bb1766fcb8d2 + createdAt: + type: string + description: Дата и время завершения генерации + format: date-time + example: {} + status: + type: string + description: | + Статус отчёта: + + * `WAITING` — в очереди на обработку + * `PROCESSING` — генерируется + * `SUCCESS —` готов + * `RETRY` — ожидает повторной обработки + * `FAILED` — не получилось сгенерировать, сгенерируйте повторно + example: SUCCESS + name: + description: Название отчёта + type: string + example: Card report + size: + description: Размер отчёта, Б + type: integer + example: 123 + startDate: + description: Начало периода + type: string + format: date + example: {} + endDate: + description: Конец периода + type: string + format: date + example: {} + error: + type: boolean + example: false + description: Флаг ошибки + errorText: + type: string + description: Текст ошибки + additionalErrors: + type: array + example: null + items: + type: object + properties: + field: + type: string + description: + type: string + NmReportRetryReportResponse: + type: object + properties: + data: + type: string + description: Уведомление, что началась повторная генерация отчёта + example: Началось переформирование файла/отчета + error: + type: boolean + description: Флаг ошибки + example: false + errorText: + description: Описание ошибки + type: string + example: '' + additionalErrors: + description: Дополнительные ошибки + type: array + items: + type: object + properties: + field: + description: Структура, где допущена ошибка + type: string + description: + description: Описание + type: string + example: null + ErrorInternalResponse: + description: Прочие ошибки + type: object + properties: + error: + type: boolean + errorText: + type: string + example: Internal server error + ResponseWithReturn: + type: object + properties: + total: + type: integer + description: Размер обновлённого бюджета + StatInterval: + type: object + properties: + interval: + description: Запрошенный временной диапазон. + type: object + properties: + begin: + description: Начало запрашиваемого периода + type: string + format: date + end: + description: Конец запрашиваемого периода + type: string + format: date + stats: + description: Блок статистики + type: array + items: + $ref: '#/components/schemas/StatsBlok1' + StatDate: + type: object + properties: + dates: + description: Даты, за которые необходимо выдать информацию. + type: array + items: + type: string + format: date + stats: + description: Блок статистики + type: array + items: + $ref: '#/components/schemas/StatsBlok2' + Stat: + type: object + properties: + stats: + description: Блок статистики + type: array + items: + $ref: '#/components/schemas/StatsBlok1' + StatsBlok1: + type: object + properties: + item_id: + description: ID баннера + type: integer + item_name: + description: Название бренда + type: string + category_name: + description: Название категории + type: string + advert_type: + description: | +
Тип медиакампании:
1 - размещение по дням
2 - размещение по просмотрам
+ type: integer + place: + description: Место на странице + type: integer + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + cr: + description: | + CR(conversion rate) — это отношение количества заказов к общему количеству посещений медиакампании + type: number + ctr: + description: | + CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании + type: number + date_from: + description: Время начала размещения + type: string + format: date-time + date_to: + description: Время завершения размещения + type: string + format: date-time + subject_name: + description: Родительская категория предмета + type: string + atbs: + description: Количество добавлений товаров в корзину + type: integer + orders: + description: Количество заказов + type: integer + price: + description: Стоимость размещения + type: integer + cpc: + description: (cost per click) - цена клика по продвигаемому товару + type: number + status: + description: Статус медиакампании + type: integer + daily_stats: + $ref: '#/components/schemas/DailyStats1' + expenses: + description: Стоимость размещения баннера + type: integer + cr1: + description: Отношение количества добавлений в корзину к количеству кликов + type: number + cr2: + description: Отношение количества заказов к количеству добавлений в корзину + type: integer + DailyStats1: + type: array + items: + type: object + properties: + date: + description: Дата + type: string + format: date-time + app_type_stats: + description: Статистика по платформам + type: array + items: + type: object + properties: + app_type: + description: | +
+
Тип платформы:
+
1 - сайт
+
32 - Android
+
64 - IOS
+
+ type: integer + stats: + $ref: '#/components/schemas/Stats1' + Stats1: + type: array + items: + type: object + properties: + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + atbs: + description: Количество добавлений товаров в корзину + type: integer + ctr: + description: | + CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании + type: number + StatsBlok2: + type: object + properties: + item_id: + description: ID баннера + type: integer + item_name: + description: Название бренда + type: string + category_name: + description: Название категории + type: string + advert_type: + description: | +
Тип медиакампании:
1 - размещение по дням
2 - размещение по просмотрам
+ type: integer + place: + description: Место на странице + type: integer + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + cr: + description: | + CR(conversion rate) — это отношение количества заказов к общему количеству посещений медиакампании + type: number + ctr: + description: | + CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании + type: number + date_from: + description: Время начала размещения + type: string + format: date-time + date_to: + description: Время завершения размещения + type: string + format: date-time + subject_name: + description: Родительская категория предмета + type: string + atbs: + description: Количество добавлений товаров в корзину + type: integer + orders: + description: Количество заказов + type: integer + price: + description: Стоимость размещения + type: integer + cpc: + description: (cost per click) - цена клика по продвигаемому товару + type: number + status: + description: Статус медиакампании + type: integer + daily_stats: + $ref: '#/components/schemas/DailyStats2' + expenses: + description: Стоимость размещения баннера + type: integer + cr1: + description: Отношение количества добавлений в корзину к количеству кликов + type: number + cr2: + description: Отношение количества заказов к количеству добавлений в корзину + type: integer + DailyStats2: + type: array + items: + type: object + properties: + date: + description: Дата + type: string + format: date-time + app_type_stats: + description: Статистика по платформам + type: array + items: + type: object + properties: + app_type: + description: | +
+
Тип платформы:
+
1 - сайт
+
32 - Android
+
64 - IOS
+
+ type: integer + stats: + $ref: '#/components/schemas/Stats2' + Stats2: + type: array + items: + type: object + properties: + views: + description: Количество просмотров + type: integer + clicks: + description: Количество кликов + type: integer + atbs: + description: Количество добавлений товаров в корзину + type: integer + orders: + description: Количество заказов + type: integer + cr: + description: | + CR(conversion rate) — отношение количества заказов к общему количеству посещений медиакампании + type: number + ctr: + description: | + CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании + type: number + RequestWithDate: + type: array + minItems: 1 + maxItems: 100 + items: + type: object + properties: + id: + description: ID кампании + type: integer + dates: + description: Даты, за которые необходимо выдать информацию. + type: array + items: + type: string + format: date + RequestWithCampaignID: + type: array + minItems: 1 + maxItems: 100 + items: + type: object + properties: + id: + description: ID кампании + type: integer + RequestWithInterval: + type: array + minItems: 1 + maxItems: 100 + items: + type: object + properties: + id: + description: ID кампании + type: integer + interval: + description: Временной диапазон, за который необходимо выдать данные. + type: object + properties: + begin: + description: Начало запрашиваемого периода + type: string + format: date + end: + description: Конец запрашиваемого периода + type: string + format: date + Days: + description: Статистка по дням + type: array + items: + type: object + properties: + date: + description: Дата, за которую представлены данные + type: string + format: date-time + views: + type: integer + description: Количество просмотров + clicks: + type: integer + description: Количество кликов + ctr: + type: number + description: "Показатель кликабельности, отношение числа кликов к количеству показов,\_%\n" + cpc: + type: number + description: Средняя стоимость клика, ₽. + sum: + type: number + description: Затраты, ₽. + atbs: + type: integer + description: Количество добавлений товаров в корзину + orders: + type: integer + description: Количество заказов + cr: + type: integer + description: | + CR(conversion rate) — отношение количества заказов к общему количеству посещений кампании + shks: + type: integer + description: Количество заказанных товаров, шт. + sum_price: + type: number + description: Заказов на сумму, ₽ + apps: + description: Блок информации о платформе + type: array + items: + type: object + properties: + views: + type: integer + description: Количество просмотров + clicks: + type: integer + description: Количество кликов + ctr: + type: number + description: "Показатель кликабельности, отношение числа кликов к количеству показов,\_%\n" + cpc: + type: number + description: Средняя стоимость клика, ₽. + sum: + type: number + description: Затраты, ₽. + atbs: + type: integer + description: Количество добавлений товаров в корзину + orders: + type: integer + description: Количество заказов + cr: + type: integer + description: | + CR(conversion rate) — это отношение количества заказов к общему количеству посещений кампании + shks: + type: integer + description: Количество заказанных товаров, шт. + sum_price: + type: number + description: Заказов на сумму, ₽ + nm: + description: Блок статистики по артикулам WB + type: array + items: + type: object + properties: + views: + type: integer + description: Количество просмотров + clicks: + type: integer + description: Количество кликов + ctr: + type: number + description: "Показатель кликабельности, отношение числа кликов к количеству показов,\_%\n" + cpc: + type: number + description: Средняя стоимость клика, ₽. + sum: + type: number + description: Затраты, ₽. + atbs: + type: integer + description: Количество добавлений товаров в корзину + orders: + type: integer + description: Количество заказов + cr: + type: integer + description: | + CR(conversion rate) — отношение количества заказов к общему количеству посещений кампании + shks: + type: integer + description: Количество заказанных товаров, шт. + sum_price: + type: number + description: Заказов на сумму, ₽ + name: + type: string + nmId: + type: integer + appType: + type: integer + description: Тип платформы (`1` - сайт, `32` - Android, `64` - IOS) + BoosterStats: + description: Статистика по средней позиции товара на страницах поисковой выдачи и каталога (для автоматических кампаний). + type: array + items: + type: object + properties: + date: + description: Дата, за которую предоставлены данные. + type: string + format: date-time + nm: + description: Артикул WB + type: integer + avg_position: + description: Средняя позиция товара на страницах поисковой выдачи и каталога + type: integer + ResponseWithInterval: + description: Ответ при запросе с interval + type: array + items: + type: object + properties: + interval: + description: Запрошенный временной диапазон. + type: object + properties: + begin: + description: Начало запрашиваемого периода + type: string + format: date + end: + description: Конец запрашиваемого периода + type: string + format: date + views: + type: integer + description: | + Количество просмотров.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + clicks: + type: integer + description: | + Количество кликов.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + ctr: + type: number + description: | + Показатель кликабельности.
+ Отношение числа кликов к количеству показов. Выражается в процентах.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам.
+ cpc: + type: number + description: | + Средняя стоимость клика, ₽.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + sum: + type: number + description: | + Затраты, ₽.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + atbs: + type: integer + description: | + Количество добавлений товаров в корзину.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + orders: + type: integer + description: | + Количество заказов.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + cr: + type: integer + description: | + CR(conversion rate) — это отношение количества заказов к общему количеству посещений кампании.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + shks: + type: integer + description: | + Количество заказанных товаров, шт.
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + sum_price: + type: number + description: | + Заказов на сумму, ₽
+ За все дни запрошенного диапазона, по всем артикулам WB и платформам. + days: + $ref: '#/components/schemas/Days' + boosterStats: + $ref: '#/components/schemas/BoosterStats' + advertId: + description: ID кампании + type: integer + ResponseWithDate: + description: Ответ при запросе с dates + type: array + items: + type: object + properties: + dates: + description: Даты, за которые необходимо выдать информацию. + type: array + items: + type: string + format: date + views: + type: integer + description: | + Количество просмотров.
+ За все дни, по всем артикулам WB и платформам. + clicks: + type: integer + description: | + Количество кликов.
+ За все дни, по всем артикулам WB и платформам. + ctr: + type: number + description: | + Показатель кликабельности.
+ Отношение числа кликов к количеству показов. Выражается в процентах.
+ За все дни, по всем артикулам WB и платформам.
+ cpc: + type: number + description: | + Средняя стоимость клика, ₽.
+ За все дни, по всем артикулам WB и платформам. + sum: + type: number + description: | + Затраты, ₽.
+ За все дни, по всем артикулам WB и платформам. + atbs: + type: integer + description: | + Количество добавлений товаров в корзину.
+ За все дни, по всем артикулам WB и платформам. + orders: + type: integer + description: | + Количество заказов.
+ За все дни, по всем артикулам WB и платформам. + cr: + type: integer + description: | + CR(conversion rate) — это отношение количества заказов к общему количеству посещений кампании.
+ За все дни, по всем артикулам WB и платформам. + shks: + type: integer + description: | + Количество заказанных товаров, шт.
+ За все дни, по всем артикулам WB и платформам. + sum_price: + type: number + description: | + Заказов на сумму, ₽
+ За все дни, по всем артикулам WB и платформам. + days: + $ref: '#/components/schemas/Days' + boosterStats: + $ref: '#/components/schemas/BoosterStats' + advertId: + description: ID кампании + type: integer + ResponseInfoAdvert: + type: object + properties: + advertId: + description: Идентификатор кампании + type: integer + example: 1234 + type: + description: | +
+
Тип кампании:
+
4 - кампания в каталоге
+
5 - кампания в карточке товара
+
6 - кампания в поиске
+
7 - кампания в рекомендациях на главной странице
+
+ type: integer + example: 4 + status: + description: | +
+
Статус кампании:
+
-1 - кампания в процессе удаления
+
4 - готова к запуску
+
7 - Кампания завершена
+
8 - отказался
+
9 - идут показы
+
11 - Кампания на паузе
+
+ Кампания в процессе удаления. Статус означает, что кампания была удалена, и через 3-10 минут она исчезнет из ответа метода. + + type: integer + example: 9 + dailyBudget: + description: Дневной бюджет, если не установлен, то 0 + type: integer + createTime: + description: Время создания кампании + type: string + example: '2022-03-09T10:50:21.831623+03:00' + changeTime: + description: Время последнего изменения кампании + type: string + example: '2022-12-22T18:24:19.808701+03:00' + startTime: + description: Дата последнего запуска кампании + type: string + endTime: + description: Дата завершения кампании + type: string + name: + description: Название кампании + type: string + params: + description: Параметры кампании + type: array + items: + type: object + properties: + subjectName: + description: Название предметной группы (для кампаний в поиске и рекомендациях) + type: string + active: + description: Флаг активности предметной группы, true - активна, false - неактивна + type: boolean + intervals: + description: Интервалы часов показа кампании + type: array + items: + type: object + properties: + Begin: + description: Время начала показов + type: integer + End: + description: Время окончания показов + type: integer + price: + description: Текущая ставка + type: integer + menuId: + description: Идентификатор меню, где размещается кампания (для кампаний в каталоге) + type: integer + subjectId: + description: Идентификатор предметной группы, для которой создана кампания (для кампаний в поиске и рекомендациях) + type: integer + setId: + description: Идентификатор сочетания предмета и пола (для кампаний в карточке товара) + type: integer + setName: + description: Сочетание предмета и пола (для кампаний в карточке товара) + type: string + menuName: + description: Название меню, где размещается кампания (для кампаний в каталоге) + type: string + nms: + description: Массив номенклатур кампании + type: array + items: + type: object + properties: + nm: + type: integer + description: Числовой идентификатор номенклатуры Wildberries (nmId) + active: + type: boolean + description: Состояние номенклатуры (true - активна или false - неактивна) + searchPluseState: + description: | + Активность фиксированных фраз (Для кампаний в поиске)
+ (`false` - отключены, `true` - включены) + type: boolean + example: + - advertId: 12345 + name: Носки_Шерстяные + type: 6 + status: 9 + dailyBudget: 0 + createTime: '2023-05-31 16:57:42.654141+03:00' + changeTime: '2023-06-21 22:10:43.074183+03:00' + startTime: '2023-07-21 21:17:42.872376+03:00' + endTime: '2100-01-01 00:00:00+03:00' + params: + - intervals: + - begin: 3 + end: 5 + price: 400 + subjectId: 201 + subjectName: Носки + nms: + - nm: 11111111 + active: true + active: false + searchPluseState: false + ResponseInfoAdvertType8: + type: object + properties: + advertId: + description: Идентификатор кампании + type: integer + name: + description: Название кампании + type: string + type: + description: | +
Тип кампании:
8 - автоматическая + кампания
+ type: integer + status: + description: | +
Статус кампании:
-1 - кампания + в процессе удаления
4 + - готова к запуску
7 - Кампания завершена
+
8 - отказался
9 - идут показы
+
11 - Кампания на паузе
Кампания в процессе + удаления. Статус означает, что кампания была удалена, и через 3-10 минут + она исчезнет из ответа метода. + type: integer + dailyBudget: + description: Не используется + type: integer + createTime: + description: Дата создания кампании + type: string + format: date-time + changeTime: + description: Дата последнего изменения кампании + type: string + format: date-time + startTime: + description: Дата последнего запуска кампании + type: string + format: date-time + endTime: + description: Дата завершения кампании + type: string + format: date-time + autoParams: + type: object + properties: + subject: + description: Продвигаемый предмет + type: object + properties: + id: + description: Идентификатор предмета + type: integer + name: + description: Предмет + type: string + sets: + description: Внутренняя (системная) сущность (пол + предмет) + type: array + items: + type: object + properties: + id: + description: Идентификатор set + type: integer + name: + description: Название set + type: string + menus: + type: array + items: + type: object + properties: + id: + description: Идентификатор menu + type: integer + name: + description: Название menu + type: string + active: + description: Зоны показов + type: object + properties: + carousel: + description: Карточка товара (`false` - отключены, `true` - включены) + type: boolean + recom: + description: Рекомендации на главной (`false` - отключены, `true` - включены) + type: boolean + booster: + description: Поиск/Каталог (`false` - отключены, `true` - включены) + type: boolean + nmCPM: + type: array + description: | + Ставки номенклатур (артикулов WB) + items: + type: object + properties: + nm: + description: Артикул WB + type: integer + cpm: + description: Ставка + type: integer + nms: + description: Артикулы WB + type: array + items: + type: integer + cpm: + description: | + Ставка, указанная при создании кампании.
Поле актуально только для кампаний, созданных через API. + type: integer + example: + advertId: 7538202 + name: Кампания от 26.06.2023 + type: 8 + status: 11 + dailyBudget: 0 + createTime: '2023-06-26T11:21:47.78371+03:00' + changeTime: '2023-06-26T11:43:44.015093+03:00' + startTime: '2023-06-26T11:21:48.109914+03:00' + endTime: '2100-01-01T00:00:00+03:00' + autoParams: + subject: + id: 104 + name: Кеды + sets: + - id: 6378 + name: для всех + active: + carousel: false + recom: false + booster: true + nms: + - 12345678 + nmCPM: + - nm: 12345678 + cpm: 436 + cpm: 125 + ResponseInfoAdvertType9: + type: object + properties: + advertId: + description: Идентификатор кампании + type: integer + name: + description: Название кампании + type: string + type: + description: | +
Тип кампании:
9 - поиск + каталог +
+ type: integer + status: + description: | +
Статус кампании:
-1 - кампания + в процессе удаления
4 + - готова к запуску
7 - Кампания завершена
+
8 - отказался
9 - идут показы
+
11 - Кампания на паузе
Кампания в процессе + удаления. Статус означает, что кампания была удалена, и через 3-10 минут + она исчезнет из ответа метода. + type: integer + dailyBudget: + description: Не используется + type: integer + createTime: + description: Дата создания кампании + type: string + format: date-time + changeTime: + description: Дата последнего изменения кампании + type: string + format: date-time + startTime: + description: Дата последнего запуска кампании + type: string + format: date-time + endTime: + description: Дата завершения кампании + type: string + format: date-time + unitedParams: + type: array + items: + type: object + properties: + subject: + type: object + properties: + id: + description: ID предметной группы, для которой создана кампания + type: integer + name: + description: Название предметной группы + type: string + menus: + type: array + items: + type: object + properties: + id: + description: ID меню, где размещается кампания + type: integer + name: + description: Название меню + type: string + nms: + description: Артикулы WB + type: array + items: + type: integer + searchCPM: + description: Ставка в Поиске. + type: integer + catalogCPM: + description: Ставка в Каталоге, при наличии. + type: integer + example: + advertId: 7843452 + name: пиджак женский оверсайз черный / поиск + type: 9 + status: 11 + dailyBudget: 0 + createTime: '2023-07-09T10:56:02.150362+03:00' + changeTime: '2023-07-11T02:48:44.767712+03:00' + startTime: '2023-07-10T08:02:31.949155+03:00' + endTime: '2100-01-01T00:00:00+03:00' + unitedParams: + - subject: + id: 3038 + name: Противовирусные препараты + menus: + - id: -1 + name: '' + nms: + - 38995344 + searchCPM: 123 + catalogCPM: 321 + responseAdvError1: + type: object + properties: + error: + type: string + responseAdvert401: + type: object + properties: + code: + type: integer + message: + type: string + rejected: + type: string + Response200: + description: '' + type: object + properties: + data: + type: object + properties: + templates: + type: array + items: + type: object + properties: + id: + type: string + description: Идентификатор шаблона + name: + type: string + description: Название шаблона + text: + type: string + description: Текст шаблона + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + type: object + description: Дополнительные ошибки + PostTemplateOK: + type: object + properties: + data: + type: object + properties: + id: + description: Идентификатор шаблона + type: string + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + nullable: true + description: Дополнительные ошибки + type: array + items: + type: string + PatchDelRespOK: + type: object + properties: + data: + type: boolean + nullable: true + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + ResponseErrorTemplate: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + description: Есть ли ошибка + errorText: + type: string + description: Описание ошибки + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + responsefeedbackErr: + type: object + properties: + data: + type: object + nullable: true + error: + description: Есть ли ошибка + type: boolean + errorText: + description: Описание ошибки + type: string + additionalErrors: + description: Дополнительные ошибки + nullable: true + type: array + items: + type: string + requestId: + description: '' + type: string + productRating: + type: object + properties: + nmId: + type: integer + description: Артикул WB + imtId: + type: integer + description: Идентификатор карточки товара + valuationsSum: + type: integer + description: Сумма оценок + feedbacksCount: + type: integer + description: Количество отзывов + valuation: + type: number + description: Средняя оценка + productName: + type: string + nullable: true + description: Название товара + supplierArticle: + type: string + description: Артикул продавца + brandName: + type: string + description: Бренд товара + responseFeedback: + description: Массив структур отзывов + type: array + items: + type: object + properties: + id: + type: string + description: Id отзыва + userName: + type: string + description: Имя автора отзыва + matchingSize: + type: string + description: | + Соответствие заявленного размера реальному. +
Возможные значения: + - ` ` - для безразмерных товаров + - `ок` - соответствует размеру + - `smaller` - маломерит + - `bigger` - большемерит + text: + type: string + description: Текст отзыва + productValuation: + type: integer + description: Оценка товара от покупателя + createdDate: + type: string + format: date-time + description: Дата и время создания отзыва + state: + type: string + description: | + Статус отзыва: + - `none` - не обработан (новый) + - `wbRu` - обработан + answer: + type: object + description: Структура ответа + properties: + text: + type: string + description: Текст ответа + state: + type: string + description: | + Статус: + - `none` - новый + - `wbRu` - отображается на сайте + - `reviewRequired` - ответ проходит проверку + - `rejected` - ответ отклонён + productDetails: + description: Структура товара + type: object + properties: + nmId: + type: integer + description: Артикул WB + imtId: + type: integer + description: Идентификатор карточки товара + productName: + type: string + description: Название товара + supplierArticle: + type: string + nullable: true + description: Артикул продавца + supplierName: + type: string + nullable: true + description: Имя продавца + brandName: + type: string + nullable: true + description: Бренд товара + size: + type: string + description: Размер товара (`techSize` в КТ) + photoLinks: + description: Массив структур фотографий + type: array + items: + type: object + properties: + fullSize: + type: string + description: Адрес фотографии полного размера + miniSize: + type: string + description: Адрес фотографии маленького размера + video: + description: Структура видео + type: object + properties: + previewImage: + type: string + description: Ссылка на обложку видео + link: + type: string + description: Ссылка на файл плейлиста видео (доступно по протоколу hls) + duration_sec: + type: integer + description: Общая продолжительность видео + wasViewed: + type: boolean + description: Просмотрен ли отзыв + isAbleSupplierFeedbackValuation: + description: Доступна ли продавцу оценка отзыва (`true` - доступна, `false` - не доступна) + type: boolean + supplierFeedbackValuation: + description: Оценка отзыва, оставленная продавцом + type: integer + isAbleSupplierProductValuation: + description: Доступна ли продавцу оценка товара (`true` - доступна, `false` - не доступна) + type: boolean + supplierProductValuation: + description: Оценка товара, оставленная продавцом + type: integer + isAbleReturnProductOrders: + description: Доступна ли товару опция возврата (`false` - нет, `true` - да) + type: boolean + returnProductOrdersDate: + description: Дата и время, когда на запрос возврата был получен ответ со статус-кодом 200. + type: string + bables: + description: Список тегов покупателя + type: array + items: + type: string + models.TariffsBoxResponse: + type: object + properties: + data: + $ref: '#/components/schemas/models.WarehousesBoxRates' + models.WarehousesBoxRates: + type: object + properties: + dtFromMin: + type: string + description: Дата начала тарифа + example: {} + dtNextBox: + type: string + description: Дата начала следующего тарифа + example: {} + dtTillMax: + type: string + description: Дата окончания тарифа + example: {} + warehouseList: + type: array + items: + $ref: '#/components/schemas/models.WarehouseBoxRates' + nullable: true + description: Тарифы для коробов, сгруппированные по складам + models.WarehouseBoxRates: + type: object + properties: + boxDeliveryAndStorageExpr: + type: string + description: Коэффициент, %. На него умножается стоимость доставки и хранения. Во всех тарифах этот коэффициент уже учтён + example: 20 + boxDeliveryBase: + type: string + description: "Доставка 1\_литра,\_₽" + example: 150 + boxDeliveryLiter: + type: string + description: "Доставка каждого дополнительного литра,\_₽" + example: 10 + boxStorageBase: + type: string + description: "Хранение 1\_литра,\_₽" + example: 100 + boxStorageLiter: + type: string + description: "Хранение каждого дополнительного литра,\_₽" + example: 10 + warehouseName: + type: string + description: Название склада + example: Коледино + models.TariffsPalletResponse: + type: object + properties: + data: + $ref: '#/components/schemas/models.WarehousesPalletRates' + models.WarehousesPalletRates: + type: object + properties: + dtFromMin: + type: string + description: Дата начала тарифа + example: {} + dtNextPallet: + type: string + description: Дата начала следующего тарифа + example: {} + dtTillMax: + type: string + description: Дата окончания тарифа + example: {} + warehouseList: + type: array + items: + $ref: '#/components/schemas/models.WarehousePalletRates' + nullable: true + description: Тарифы для монопаллет, сгруппированные по складам + models.WarehousePalletRates: + type: object + properties: + palletDeliveryExpr: + type: string + description: Коэффициент доставки, %. На него умножается стоимость доставки. Во всех тарифах этот коэффициент уже учтён + example: 20 + palletDeliveryValueBase: + type: string + description: "Доставка 1\_литра,\_₽" + example: 150 + palletDeliveryValueLiter: + type: string + description: "Доставка каждого дополнительного литра,\_₽" + example: 50 + palletStorageExpr: + type: string + description: Коэффициент хранения, %. На него умножается стоимость хранения. Во всех тарифах этот коэффициент уже учтён + example: 20 + palletStorageValueExpr: + type: string + description: "Хранение 1\_монопаллеты,\_₽" + example: 200 + warehouseName: + type: string + description: Название склада + example: Коледино + models.ReturnTariffsResponse: + type: object + properties: + data: + $ref: '#/components/schemas/models.WarehousesReturnRates' + models.WarehousesReturnRates: + type: object + properties: + dtNextDeliveryDumpKgt: + type: string + description: Дата начала следующего тарифа при грузовой доставке + example: {} + dtNextDeliveryDumpSrg: + type: string + description: Дата начала следующего тарифа для неопознанных товаров + example: {} + dtNextDeliveryDumpSup: + type: string + description: Дата начала следующего тарифа при обычной доставке + example: {} + warehouseList: + type: array + items: + $ref: '#/components/schemas/models.WarehouseReturnRates' + nullable: true + description: "

Тарифы на\_возврат, сгруппированные по складам:

    \n
  • стоимость возврата брака и возврата по инициативе продавца при грузовой доставке;
  • \n
  • стоимость возврата неопознанного складом товара;
  • \n
  • стоимость возврата брака и возврата по инициативе продавца (в пункт выдачи и обратно).
  • \n

Можно получить стоимость возврата в пункт выдачи (ПВЗ) и обратной логистики\_— если продавец не забрал товары из пункта выдачи за\_7 дней.

\n" + models.WarehouseReturnRates: + type: object + properties: + deliveryDumpKgtOfficeBase: + type: string + description: "

Стоимость возврата при грузовой доставке, доставка на\_ПВЗ (базовая цена\_за\_1\_л),\_₽

Применяется для крупногабаритных товаров, когда:

    \n
  • продавец хочет вывезти товары со склада Wildberries;
  • \n
  • на\_складе обнаружили бракованные товары;
  • \n
  • покупатель возвращает товар, но его нельзя вернуть в продажу.
  • \n
\n" + example: 100 + deliveryDumpKgtOfficeLiter: + type: string + description: "

Стоимость возврата при грузовой доставке, доставка на\_ПВЗ (доп. литр),\_₽

Стоимость за\_каждый дополнительный литр.

\n" + example: 30 + deliveryDumpKgtReturnExpr: + type: string + description: "

Стоимость возврата при грузовой доставке, обратная логистика невостребованного возврата,\_₽

Грузовая доставка невостребованного возврата обратно на\_склад Wildberries. За единицу товара.

\n" + example: 200 + deliveryDumpSrgOfficeExpr: + type: string + description: "

Стоимость возврата неопознанного складом товара за\_каждую единицу, доставка на\_ПВЗ, ₽

Применяется для товаров, которые не смогли принять на\_складе

.\n" + example: 200 + deliveryDumpSrgReturnExpr: + type: string + description: "

Стоимость возврата неопознанного складом товара за\_каждую единицу, обратная логистика невостребованного возврата

Доставка невостребованного возврата обратно на\_склад Wildberries.

" + example: 200 + deliveryDumpSupCourierBase: + type: string + description: "Стоимость возврата, доставка курьером (базовая цена\_за\_1\_л). Сейчас этот тариф не\_применяется" + deliveryDumpSupCourierLiter: + type: string + description: "Стоимость возврата, доставка курьером (доп.\_л). Сейчас этот тариф не\_применяется" + deliveryDumpSupOfficeBase: + type: string + description: "

Стоимость возврата, доставка на\_ПВЗ (базовая цена\_за\_1\_л), ₽

Применяется, когда:

  • продавец хочет вывезти товары со склада Wildberries;
  • на\_складе обнаружили бракованные товары;
  • покупатель возвращает товар, но его нельзя вернуть в продажу.
" + example: 200 + deliveryDumpSupOfficeLiter: + type: string + description: "

Стоимость возврата, доставка на\_ПВЗ (доп. литр), ₽

Стоимость за\_каждый дополнительный литр

" + example: 50 + deliveryDumpSupReturnExpr: + type: string + description: "

Стоимость возврата, обратная логистика невостребованного возврата, за\_единицу товара, ₽

\n" + example: 200 + warehouseName: + type: string + description: Название склада + example: Коледино + TariffsBoxResponse: + type: object + properties: + response: + $ref: '#/components/schemas/models.TariffsBoxResponse' + TariffsPalletResponse: + type: object + properties: + response: + $ref: '#/components/schemas/models.TariffsPalletResponse' + ReturnTariffsResponse: + type: object + properties: + response: + $ref: '#/components/schemas/models.ReturnTariffsResponse' + Commission: + type: object + properties: + report: + type: array + description: Список комиссий + items: + type: object + properties: + kgvpMarketplace: + type: number + description: Комиссия по модели `Склад продавца — везу на склад WB`, % + kgvpSupplier: + type: number + description: Комиссия по моделям `Склад продавца — везу самостоятельно до клиента` и `Склад продавца — Курьером WB`, % + kgvpSupplierExpress: + type: number + description: Комиссия по модели `Склад продавца — везу самостоятельно до клиента экспресс`, % + paidStorageKgvp: + type: number + description: Комиссия по модели `Склад WB`, % + parentID: + type: integer + description: ID родительской категории + parentName: + type: string + description: Название родительской категории + subjectID: + type: integer + description: ID предмета + subjectName: + type: string + description: Название предмета + CommissionChina: + type: object + properties: + report: + type: array + description: Список комиссий + items: + type: object + properties: + kgvpChina: + type: number + description: Комиссия для продавцов из Китая, % + parentID: + type: integer + description: ID родительской категории + parentName: + type: string + description: Название родительской категории + subjectID: + type: integer + description: ID предмета + subjectName: + type: string + description: Название предмета + CommissionTurkey: + type: object + properties: + report: + type: array + description: Список комиссий + items: + type: object + properties: + kgvpTurkey: + type: number + description: Комиссия для продавцов из Турции, % + parentID: + type: integer + description: ID родительской категории + parentName: + type: string + description: Название родительской категории + subjectID: + type: integer + description: ID предмета + subjectName: + type: string + description: Название предмета + CommissionUzbekistan: + type: object + properties: + report: + type: array + description: Список комиссий + items: + type: object + properties: + kgvpUzbekistan: + type: number + description: Комиссия для продавцов из Узбекистана, % + parentID: + type: integer + description: ID родительской категории + parentName: + type: string + description: Название родительской категории + subjectID: + type: integer + description: ID предмета + subjectName: + type: string + description: Название предмета + Chat: + type: object + properties: + chatID: + type: string + description: ID чата + replySign: + type: string + description: | + Подпись чата. Требуется при [отправке сообщения](./#/paths/~1api~1v1~1seller~1message/post) + clientID: + type: string + description: ID покупателя + clientName: + type: string + description: Имя покупателя + ChatsResponse: + type: object + properties: + result: + type: array + items: + $ref: '#/components/schemas/Chat' + errors: + description: Ошибки, если есть + Error429: + type: object + properties: + code: + type: string + message: + type: string + Event: + type: object + properties: + chatID: + type: string + description: ID чата + eventID: + type: string + description: ID события + eventType: + $ref: '#/components/schemas/EventType' + isNewChat: + type: boolean + description: | + Признак нового чата: + - `false` — чат не новый + - `true` — чат новый + message: + type: object + description: Данные сообщения + properties: + attachments: + $ref: '#/components/schemas/EventAttachments' + text: + type: string + description: Текст сообщения + refund: + $ref: '#/components/schemas/Refund' + source: + type: string + description: | + Источник отправки сообщения: + - `seller-portal` — портал продавцов + - `seller-public-api` — API Чата с покупателями + - `rusite` — портал покупателей + addTimestamp: + type: integer + description: Время появления события на сервере. Формат Unix timestamp + addTime: + type: string + description: Время появления события на сервере в UTC + replySign: + type: string + description: | + Подпись чата. Доступна только при `"isNewChat": true`. Требуется при [отправке сообщения](./#/paths/~1api~1v1~1seller~1message/post) + sender: + $ref: '#/components/schemas/Sender' + clientID: + type: string + description: ID покупателя + clientName: + type: string + description: Имя покупателя + EventAttachments: + type: object + description: Вложения + properties: + goodCard: + $ref: '#/components/schemas/GoodCard' + files: + type: array + description: Файлы + items: + $ref: '#/components/schemas/File' + images: + type: array + description: Изображения + items: + $ref: '#/components/schemas/Image' + EventType: + type: string + description: | + Тип события: + - `message` — сообщение + - `refund` — возврат + enum: + - message + - refund + File: + type: object + properties: + contentType: + type: string + description: Тип файла + date: + type: string + description: Дата загрузки файла + name: + type: string + description: Название файла + url: + type: string + description: URL для получения файла + size: + type: integer + description: Размер файла в байтах + GoodCard: + type: object + description: Информация о заказе + properties: + date: + type: string + description: Дата заказа + needRefund: + type: boolean + description: | + Запрошен ли возврат товара: + - `false` — не запрошен + - `true` — запрошен + nmID: + type: integer + description: Артикул WB + price: + type: integer + description: Стоимость заказа + priceCurrency: + type: string + description: Валюта + rid: + type: string + description: Уникальный ID заказа в WB + size: + type: string + description: Размер товара + statusID: + type: integer + description: | + Статус товара: + - `0` — Товар активный + - `1` — Товар оформлен + - `2` — Товар собирается + - `3` — Товар в пути + - `4` — Товар ожидает в ПВЗ + - `5` — Товар у курьера + - `10` — Товар в архиве + - `11` — Товар выкуплен + - `12` — Товар отменён + - `13` — Оформлен возврат + - `14` — Товар отменён (нет на складе) + Image: + type: object + description: Изображение + properties: + date: + type: string + description: Дата загрузки изображения + url: + type: string + description: URL для получения изображения + MessageResponse: + type: object + properties: + errors: + type: array + description: Ошибки загрузки файлов, если есть + items: + type: string + result: + type: object + properties: + addTime: + type: integer + description: Время загрузки + chatID: + type: string + description: ID чата + Refund: + type: object + description: Возврат товара + properties: + actionType: + $ref: '#/components/schemas/RefundActionType' + price: + type: integer + description: Стоимость заказа + priceCurrency: + type: string + description: Валюта + rid: + type: string + description: Уникальный ID заказа в WB + RefundActionType: + description: | + Действие продавца по возврату: + - `sellerRequestRefund` — продавец запросил возврат товара + - `sellerRejectRefund` — продавец отклонил возврат товара + - `sellerAcceptFullRefund` — продавец одобрил возврат товара + - `sellerAcceptRefundInOffice` — продавец одобрил возврат товара на ПВЗ + type: string + enum: + - sellerRequestRefund + - sellerRejectRefund + - sellerAcceptFullRefund + - sellerAcceptRefundInOffice + Sender: + type: string + description: | + Отправитель: + - `client` — покупатель + - `seller` — продавец + - `wb` — Wildberries + enum: + - client + - seller + - wb + EventsResponse: + type: object + properties: + result: + $ref: '#/components/schemas/EventsResult' + errors: + description: Ошибки, если есть + EventsResult: + type: object + properties: + next: + type: integer + description: Пагинатор. Значение поля необходимо указать в запросе для получения следующего пакета данных. + format: Unix timestamp + newestEventTime: + description: Время новейшего события в ответе + type: string + format: RFC 3339 + oldestEventTime: + description: Время старейшего события в ответе + type: string + format: RFC 3339 + totalEvents: + type: integer + description: Количество событий + events: + type: array + items: + $ref: '#/components/schemas/Event' + examples: + RateLimit: + description: Превышено допустимое количество запросов в единицу времени + value: Too many requests + creatingOneCard: + description: '' + value: + - subjectID: 105 + variants: + - vendorCode: АртикулПродавца + title: Наименование товара + description: Описание товара + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - techSize: S + wbSize: '42' + price: 5000 + skus: + - '88005553535' + creatingMergedCards: + description: '' + value: + - subjectID: 3091 + variants: + - vendorCode: АртикулПродавца11 + title: Наименование товара 1 + description: Описание товара 1 + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - skus: + - '111111111133111' + - vendorCode: АртикулПродавца22 + title: Наименование товара 2 + description: Описание товара 2 + brand: БрендДругой + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - skus: + - '111111111441111' + creatingGroupOfIndividualCards: + description: '' + value: + - subjectID: 3091 + variants: + - vendorCode: АртикулПродавца1 + title: Наименование товара 1 + description: Описание товара 1 + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - skus: + - '1111111111111' + - subjectID: 105 + variants: + - vendorCode: Артикул продавца 2 + title: Наименование товара 2 + description: Описание товара 2 + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - techSize: S + wbSize: '42' + price: 5000 + skus: + - '2222222222222' + responseIncorrectBeginDate: + description: Некорректная дата начала + value: + error: Некорректная дата начала + responseIncorrectEndDate: + description: Некорректная дата конца + value: + error: Некорректная дата конца + responseExceededLimit: + description: '' + value: + data: null + error: true + errorText: В группу можно объединить не больше 30 карточек. В результате запроса будет превышен лимит + additionalErrors: + error: В группу можно объединить не больше 30 карточек. В результате запроса будет превышен лимит + responseCombining: + description: '' + value: + data: null + error: true + errorText: Объединение товаров с разными предметами невозможно + additionalErrors: + error: Объединение товаров с разными предметами невозможно + responseIncorrectRequestFormat: + description: '' + value: + data: null + error: true + errorText: Неправильный формат запроса + additionalErrors: + error: Неправильный формат запроса + responseNonExistentNmId: + description: '' + value: + data: null + error: true + errorText: Указан несуществующий nmID карточки товара + additionalErrors: + error: Указан несуществующий nmID карточки товара + responseNonExistentImt: + description: '' + value: + data: null + error: true + errorText: Указан несуществующий imt + additionalErrors: + error: Указан несуществующий imt + responseDuplicateRequests: + description: '' + value: + data: null + error: true + errorText: Недопустимо отправлять дублирующиеся запросы! + additionalErrors: + error: Недопустимо отправлять дублирующиеся запросы! + responseAllCardsInSameGroup: + description: '' + value: + data: null + error: true + errorText: Все карточки находятся в одной группе + additionalErrors: + error: Все карточки находятся в одной группе + responseCardCreate1: + description: '' + value: + data: null + error: true + errorText: string + additionalErrors: + string: string + InvalidRequestFormatContent: + description: Некорректный формат запроса + value: + data: null + error: true + errorText: Invalid request format + additionalErrors: {} + CardCreatedWithoutVendorCode: + description: КТ нельзя создать без артикула продавца + value: + data: null + error: true + errorText: A card cannot be created without a vendorCode + additionalErrors: {} + CardsVendorCodeUsedInOtherCards: + description: Артикул продавца используется в другой КТ + value: + data: null + error: true + errorText: bad request; Unexpected the specified card's vendor code is used in other cards + additionalErrors: {} + ThisCategoryDoesNotExist: + description: Такого предмета не существует + value: + data: null + error: true + errorText: This category does not exist + additionalErrors: + id: '342342' + responseBodyContentError400: + description: '' + value: + data: null + error: true + errorText: Текст ошибки + additionalErrors: + MoveNmsToTrash: Bad request + responseOK200: + description: '' + value: + data: null + error: false + errorText: '' + additionalErrors: null + responseBody400LenName: + description: '' + value: + data: null + error: true + errorText: Недопустимое значение наименования тега + additionalErrors: + description: Слишком длинное название тега. Разрешено не более 15 символов + responseBodyLimitTag: + description: '' + value: + data: null + error: true + errorText: Исчерпан лимит на создание тегов + additionalErrors: null + responseBodyNameNotExist: + description: '' + value: + data: null + error: true + errorText: Тег с таким именем уже существует + additionalErrors: null + responseNotFound200: + description: '' + value: + data: null + error: true + errorText: Неправильный запрос + additionalErrors: + description: Такого тега не существует у продавца + responseNotFound200Del: + description: '' + value: + data: null + error: true + errorText: Такого тега не существует + additionalErrors: + tagID: '1234' + IncorrectRequest4: + description: '' + value: + data: null + error: true + errorText: Неправильный запрос + additionalErrors: + description: Указаны несуществующие теги + responseBodyTagNotExist: + description: '' + value: + data: null + error: true + errorText: Такого тега не существует + additionalErrors: + tagID: '1234' + responseBodyError500: + description: '' + value: + data: null + error: true + errorText: Внутренняя ошибка. + additionalErrors: null + TokenMissing: + description: Токен отсутствует + value: 'proxy: unauthorized' + TokenInvalid: + description: Токен недействителен + value: 'proxy: invalid token' + TokenNotFound: + description: Токен удален + value: 'proxy: not found' + BodySizeExceedsTheGivenLimit: + description: Превышен лимит объёма данных в запросе + value: body size exceeds the given limit + InvalidQueryParams: + description: Неправильные параметры запроса + value: + data: null + error: true + errorText: Invalid query params + GoodsNumberLimitExceeded: + description: В запросе слишком много товаров + value: + data: null + error: true + errorText: Goods number limit exceeded + DuplicatedNmIdInTask: + description: В запросе несколько одинаковых `nmid` + value: + data: null + error: true + errorText: Duplicated nm_id in task + NoGoodsForProcess: + description: Цены и скидки такие же, как сейчас + value: + data: null + error: true + errorText: No goods for process + FailedToParseData: + description: Не удалось обработать данные, проверьте, что запрос правильный + value: + data: null + error: true + errorText: Failed to parse data + PriceHasDecimalPlaces: + description: У цены дробное значение, исправьте на целое + value: + data: null + error: true + errorText: Price has decimal places + WrongPriceValue: + description: Некорректная цена + value: + data: null + error: true + errorText: Wrong price value + WrongNmValue: + description: Неправильный `nmID` + value: + data: null + error: true + errorText: Wrong nm value + BothDiscountAndPriceAreNotSet: + description: Цена и скидка не установлены + value: + data: null + error: true + errorText: Both discount and price are not set + PriceNotSet: + description: Цена не установлена + value: + data: null + error: true + errorText: Both discount and price are not set + EmptyData: + description: Нет данных + value: + data: null + error: true + errorText: Empty data + NoValidGoodsInTask: + description: Таких товаров или размеров нет (например, их удалили) + value: + data: null + error: true + errorText: No valid goods in task + SortError: + description: Можно сортировать либо по цене, либо по скидке + value: + data: null + error: true + errorText: Can sort only by price or discount at the same time + RequestOptions: + value: + - quantity: 1 + barcode: k + - quantity: 7 + barcode: '1111111111' + ResponseCoefficients: + value: + - date: '2024-04-11T00:00:00Z' + coefficient: -1 + warehouseID: 217081 + warehouseName: Сц Брянск 2 + boxTypeName: Суперсейф + boxTypeID: 6 + - date: '2024-04-11T00:00:00Z' + coefficient: 1 + warehouseID: 204939 + warehouseName: Астана + boxTypeName: QR-поставка с коробами + Response400Coefficients: + value: + status: 400 + title: bad request + detail: warehouseIDs param is incorrect + requestID: '2423423' + origin: supply-api + description: Значение параметра `warehouseIDs` некорректно + OptionsResponse: + value: + result: + - barcode: кrrr + warehouses: null + error: + title: barcode validation error + detail: barcode кrrr is not found + isError: true + - barcode: '123456789' + warehouses: + - warehouseID: 205349 + canBox: true + canMonopallet: false + canSupersafe: false + - warehouseID: 211622 + canBox: false + canMonopallet: true + canSupersafe: false + - warehouseID: 214951 + canBox: true + canMonopallet: false + canSupersafe: false + - warehouseID: 206319 + canBox: true + canMonopallet: false + canSupersafe: false + requestID: kr53d2bRKYmkK2N6zaNKHs + IncorrectRequestBody: + value: + code: IncorrectRequestBody + message: Некорректное тело запроса + WarehouseNameInvalid: + value: + code: WarehouseNameInvalid + message: Некорректное имя склада + IncorrectRequest: + value: + code: IncorrectRequest + message: Переданы некорректные данные + IncorrectParameter: + value: + code: IncorrectParameter + message: Передан некорректный параметр + FailedToUpdateMeta: + value: + code: FailedToUpdateMeta + message: Не удалось обновить метаданные сборочного задания. Убедитесь, что сборочное задание удовлетворяет всем необходимым требованиям (сборочное задание существует, находится в статусе "На сборке", сборочному заданию доступны метаданные см. описание метода **Получить метаданные сборочного задания**) + SupplyHasOrders: + value: + code: SupplyHasOrders + message: Не удалось обработать поставку. Убедитесь, что за ней не осталось закреплённых сборочных заданий. + SupplyHasZeroOrders: + value: + code: SupplyHasZeroOrders + message: Не удалось обработать поставку. Убедитесь, что за ней закреплён хотя бы одно сборочное задание. + SupplyNotClosed: + value: + code: SupplyNotClosed + message: Поставка не передана в доставку + FailedToAddSupplyOrder: + value: + code: FailedToAddSupplyOrder + message: Не удалось закрепить сборочное задание за поставкой. Убедитесь, что сборочное задание и поставка удовлетворяют всем необходимым требованиям. + StatusMismatch: + value: + code: StatusMismatch + message: Несоответствие статусов, проверьте их правильность + StatusChangeNotAllowed: + value: + code: StatusChangeNotAllowed + message: Задание перейдёт в завершенные после сканирования на ПВЗ + FailedToAddSupplyTrbx: + value: + code: FailedToAddSupplyTrbx + message: Не удалось добавить коробку. Убедитесь, что поставка удовлетворяет всем необходимым требованиям. + TokenIsNotApplicable: + description: Используемый токен не применим к данным методам. + value: 'Error ae394f96-e258-432d-af13-a53a3d31f8b0: request rejected, unauthorized: token scope not allowed for this API route' + CantParseDateFrom: + description: Ошибка в запросе + value: + errors: + - can't parse dateFrom + RequestLimitStatistics: + description: Превышено допустимое кол-во запросов в единицу времени + value: + code: 429 + message: error text + CreateResponseData: + value: + data: + taskId: 219eaecf-e532-4bd8-9f15-8036ec1b042d + GetTasksResponseData: + value: + data: + id: cad56ec5-91ec-43a2-b5e8-efcf244cf309 + status: done + MissingDate: + description: Укажите дату + value: + errors: + - 'parameter "date" in query has an error: value is required but missing' + IncorrectDate: + description: Неправильный формат даты + value: + errors: + - can't parse date + IncorrectDateFrom1: + description: Дата начала не может быть раньше 2023 года + value: + errors: + - date year should be greater or equal 2023 + ErrorEarlytDate: + description: Дата не может быть раньше 31.10.2022 + value: + errors: + - date cannot be earlier than 2022-10-31 + BySelectedNmIDRes: + description: '' + value: | + nmID, dt, openCardCount, addToCartCount, ordersCount, ordersSumRub, buyoutsCount, buyoutsSumRub, cancelCount, cancelSumRub, addToCartConversion, cartToOrderConversion, buyoutPercent + 70027655,2023-12-21,1,0,0,0,0,0,0,0,0,0,0 + ... + ... + 150317666,2023-12-21,2,0,0,0,0,0,0,0,0,0,0 + GroupedByObjectsBrandsAndTagsRes: + description: '' + value: | + dt, openCardCount, addToCartCount, ordersCount, ordersSumRub, buyoutsCount, buyoutsSumRub, cancelCount, cancelSumRub, addToCartConversion, cartToOrderConversion, buyoutPercent + 2023-12-21,1,0,0,0,0,0,0,0,0,0,0 + ... + ... + 2023-12-21,2,0,0,0,0,0,0,0,0,0,0 + MissingDateTimeFrom: + description: Укажите начало отчётного периода + value: + title: Bad Request + detail: 'parameter "dateFrom" in query has an error: value is required but missing' + requestId: kr53d2bRKYmkK2N6zaNKHs + origin: seller-analytics-api + MissingDateTimeTo: + description: Укажите конец отчётного периода + value: + title: Bad Request + detail: 'parameter "dateTo" in query has an error: value is required but missing' + requestId: kr53d2bRKYmkK2N6zaNKHs + origin: seller-analytics-api + IncorrectDateTimeFrom: + description: Неправильный формат даты начала отчётного периода + value: + title: Bad Request + detail: can't parse dateFrom + requestId: kr53d2bRKYmkK2N6zaNKHs + origin: seller-analytics-api + IncorrectDateTimeTo: + description: Неправильный формат даты конца отчётного периода + value: + title: Bad Request + detail: can't parse dateTo + requestId: kr53d2bRKYmkK2N6zaNKHs + origin: seller-analytics-api + DateRangeExceeded: + description: Можно получить отчёт максимум за 31 день + value: + title: Bad Request + detail: difference between dateFrom and dateTo should be less or equal 31 days + requestId: kr53d2bRKYmkK2N6zaNKHs + origin: seller-analytics-api + DateRanges: + description: Дата начала должна быть раньше даты конца отчётного периода + value: + title: Bad Request + detail: dateTo should be greater dateFrom + requestId: kr53d2bRKYmkK2N6zaNKHs + origin: seller-analytics-api + ResponseWithReturn: + description: Ответ при return=true + value: + total: 500 + SettingMinusPhrase: + description: Установка минус-фраз + value: + excluded: + - первая фраза + - вторая фраза + RemovingMinusPhrase: + description: Удаление минус-фраз + value: + excluded: [] + RequestWithoutParam: + description: Запрос без параметров + value: + - id: 107024 + RequestAggregate: + description: Запрос с интервалами и датами + value: + - id: 107024 + interval: + begin: '2023-10-21' + end: '2023-10-21' + - id: 107024 + dates: + - '2023-10-22' + - '2023-10-26' + RespStatMediaInterval: + description: Ответ при запросе с интервалами + value: + - interval: + begin: '2023-10-21' + end: '2023-10-25' + stats: + - item_id: 62237 + item_name: Gloria Jeans + category_name: Детям + advert_type: 1 + place: 2 + views: 11849 + clicks: 209 + cr: 0.48 + ctr: 1.76 + date_from: '2023-10-21T00:00:00+03:00' + date_to: '2023-10-27T23:59:59+03:00' + subject_name: Одежда + atbs: 4 + orders: 1 + price: 175000 + cpc: 837.32 + status: 6 + daily_stats: + - date: '2023-10-21T00:00:00+03:00' + app_type_stats: + - app_type: 1 + stats: + - views: 2017 + clicks: 27 + atbs: 1 + ctr: 1.34 + expenses: 175000 + cr1: 1.91 + cr2: 25 + RespStatMediaDates: + description: Ответ при запросе с датами + value: + - dates: + - '2023-10-26' + - '2023-10-22' + stats: + - item_id: 62237 + item_name: Gloria Jeans + category_name: Детям + advert_type: 1 + place: 2 + views: 4584 + clicks: 74 + cr: 1.35 + ctr: 1.61 + date_from: '2023-10-21T00:00:00+03:00' + date_to: '2023-10-27T23:59:59+03:00' + subject_name: Одежда + atbs: 2 + orders: 1 + price: 175000 + cpc: 2364.86 + status: 6 + daily_stats: + - date: '2023-10-22T00:00:00+03:00' + app_type_stats: + - app_type: 1 + stats: + - views: 2384 + clicks: 33 + atbs: 2 + orders: 1 + cr: 3.03 + ctr: 1.38 + expenses: 175000 + cr1: 2.7 + cr2: 50 + RespStatMediaWithoutParam: + description: Ответ при запросе без параметров + value: + - stats: + - item_id: 62237 + item_name: Gloria Jeans + category_name: Детям + advert_type: 1 + place: 2 + views: 11849 + clicks: 209 + cr: 0.48 + ctr: 1.76 + date_from: '2023-10-21T00:00:00+03:00' + date_to: '2023-10-27T23:59:59+03:00' + subject_name: Одежда + atbs: 4 + orders: 1 + price: 175000 + cpc: 837.32 + status: 6 + daily_stats: + - date: '2023-10-21T00:00:00+03:00' + app_type_stats: + - app_type: 1 + stats: + - views: 2017 + clicks: 27 + atbs: 1 + ctr: 1.34 + expenses: 175000 + cr1: 1.91 + cr2: 25 + RespStatMediaAggregate: + description: Ответ при запросе с интервалами и датами + value: + - interval: + begin: '2023-10-21' + end: '2023-10-25' + stats: + - item_id: 62237 + item_name: Gloria Jeans + category_name: Детям + advert_type: 1 + place: 2 + views: 11849 + clicks: 209 + cr: 0.48 + ctr: 1.76 + date_from: '2023-10-21T00:00:00+03:00' + date_to: '2023-10-27T23:59:59+03:00' + subject_name: Одежда + atbs: 4 + orders: 1 + price: 175000 + cpc: 837.32 + status: 6 + daily_stats: + - date: '2023-10-21T00:00:00+03:00' + app_type_stats: + - app_type: 1 + stats: + - views: 2017 + clicks: 27 + atbs: 1 + ctr: 1.34 + expenses: 175000 + cr1: 1.91 + cr2: 25 + - dates: + - '2023-10-26' + - '2023-10-22' + stats: + - item_id: 62237 + item_name: Gloria Jeans + category_name: Детям + advert_type: 1 + place: 2 + views: 4584 + clicks: 74 + cr: 1.35 + ctr: 1.61 + date_from: '2023-10-21T00:00:00+03:00' + date_to: '2023-10-27T23:59:59+03:00' + subject_name: Одежда + atbs: 2 + orders: 1 + price: 175000 + cpc: 2364.86 + status: 6 + daily_stats: + - date: '2023-10-22T00:00:00+03:00' + app_type_stats: + - app_type: 1 + stats: + - views: 2384 + clicks: 33 + atbs: 2 + orders: 1 + cr: 3.03 + ctr: 1.38 + expenses: 175000 + cr1: 2.7 + cr2: 50 + - stats: + - item_id: 62237 + item_name: Gloria Jeans + category_name: Детям + advert_type: 1 + place: 2 + views: 11849 + clicks: 209 + cr: 0.48 + ctr: 1.76 + date_from: '2023-10-21T00:00:00+03:00' + date_to: '2023-10-27T23:59:59+03:00' + subject_name: Одежда + atbs: 4 + orders: 1 + price: 175000 + cpc: 837.32 + status: 6 + daily_stats: + - date: '2023-10-21T00:00:00+03:00' + app_type_stats: + - app_type: 1 + stats: + - views: 2017 + clicks: 27 + atbs: 1 + ctr: 1.34 + expenses: 175000 + cr1: 1.91 + cr2: 25 + CampaignNotFound: + value: Кампания не найдена + ChangingStatusToNewIsNotPossible: + description: '' + value: Перевод в новый статус невозможен + InsufficientFundsToResumeImpressions: + value: Недостаточно средств для возобновления показов. Пополните бюджет кампании. + DisableOrIncreaseDailyLimit: + value: Для возобновления показов отключите или увеличьте дневной лимит. + TopUpCampaignBudget: + value: Пополните бюджет кампании. + ChooseSourceOfFundsDebiting: + value: Не выбран источник списания средств + UnknownPaymentType: + value: Неизвестный тип оплаты + InsufficientFunds: + value: Недостаточно средств + CreatePlacement: + value: Создайте размещение. + TopUpCampaignBudgetToResumeImpressions2: + value: Пополните бюджет кампании для возобновления показов + ErrorInGettingItems: + value: '"Ошибка получения айтемов: {x}", Детали ошибки' + TypePlacementShouldBeImpressions: + value: Тип размещения должен быть по показам + ChangeOnlyPossibleForActiveCampaigns: + value: Изменение возможно только для активных кампаний + SmallCpm: + value: '"Ставка не может быть менее {x} рублей", Минимальная ставка' + RequestWithDate: + description: Запрос с датами + value: + - id: 8960367 + dates: + - '2023-10-07' + - '2023-10-06' + - id: 9876543 + dates: + - '2023-10-07' + - '2023-12-06' + RequestWithInterval: + description: Запрос с интервалами + value: + - id: 8960367 + interval: + begin: '2023-10-08' + end: '2023-10-10' + - id: 78978565 + interval: + begin: '2023-09-08' + end: '2023-09-11' + RequestWithoutIDParam: + description: Запрос только с id кампаний + value: + - id: 8960367 + - id: 9876543 + ResponseWithDate: + description: Ответ при запросе с полем date + value: + - views: 1052 + clicks: 2 + ctr: 0.19 + cpc: 0.09 + sum: 177.7 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + dates: + - '2023-10-07' + - '2023-10-06' + days: + - date: '2023-10-06T03:00:00+03:00' + views: 414 + clicks: 1 + ctr: 0.24 + cpc: 70 + sum: 70 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + apps: + - views: 228 + clicks: 0 + ctr: 0 + cpc: 0 + sum: 38.71 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + nm: + - views: 25 + clicks: 0 + ctr: 0 + cpc: 0 + sum: 4 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + name: Тапочки + nmId: 111111111111 + appType: 1 + boosterStats: + - date: '2023-10-07T00:00:00Z' + nm: 170095908 + avg_position: 348 + advertId: 10524818 + ResponseWithInterval: + description: Ответ при запросе с полем interval + value: + - interval: + begin: '2023-10-08' + end: '2023-10-10' + views: 1052 + clicks: 2 + ctr: 0.19 + cpc: 0.09 + sum: 177.7 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + days: + - date: '2023-10-08T03:00:00+03:00' + views: 730 + clicks: 1 + ctr: 0.14 + cpc: 124.91 + sum: 124.91 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + apps: + - views: 424 + clicks: 1 + ctr: 0.24 + cpc: 72.63 + sum: 72.63 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + nm: + - views: 424 + clicks: 1 + ctr: 0.24 + cpc: 72.63 + sum: 72.63 + atbs: 0 + orders: 0 + cr: 0 + shks: 0 + sum_price: 0 + name: Тапочки + nmId: 1111111111111 + appType: 1 + boosterStats: + - date: '2023-10-08T00:00:00Z' + nm: 1111111111111 + avg_position: 395 + advertId: 10524818 + InvalidSubjectForm: + value: Неверная форма subject + CouldNotGetDataForSearchBar: + value: Не удалось получить данные для поисковой строки + ResponseInvalidCampaignID: + description: Некорректный идентификатор кампании + value: + error: Некорректный идентификатор кампании + EmptyToken: + description: Пустой авторизационный заголовок + value: + code: 401 + message: 07e4668e-a53a3d31f8b0-UKEhtT2359xje unauthorized, rejected; 32cf4a31-4760933a empty Authorization header + InvalidToken: + description: Некорректный токен + value: + code: 401 + message: 07e4668e-a53a3d31f8b0-UKPLv7jyL7H3F unauthorized, rejected; 84bd353bf bad token, malformed + TokenScopeNotAllowedAdv: + description: Используемый тип токена не подходит для этого метода + value: + code: 401 + message: 07e4668e-a53a3d31f8b0-UK2u9L9CdmHVL unauthorized, rejected; 32cf4a31-506fc000 token scope not allowed for this API route + StatusNoChangeAdv: + value: Статус кампании не изменен + IncorrectSupplierIdAdv: + value: Некорректный идентификатор продавца + InvalidRcIdAdv: + value: Некорректный идентификатор РК + IncorrectParamAdv: + value: Некорректное значение параметра param + IncorrectActiveAdv: + value: Некорректное значение параметра active + IncorrectSubjectID: + value: Некорректное значение параметра subjectId + IncorrectTypeAdv: + value: Некорректное значение параметра type + IncorrectUsingMethods: + description: Некорректное использование метода + value: Для получения информации передайте или список кампаний, или набор фильтров + IncorrectStatusAdv: + value: Некорректное значение параметра status + IncorrectName: + value: Некорректное название + IncorrectCpmAdv: + value: Некорректное значение параметра cpm + AmountNotChanged: + value: Размер ставки не изменен + ActivitySubjectGroupNotChanged: + value: Активность предметной группы не изменена + CompanyNameChangeErr: + value: Ошибка изменения названия кампании + ErrorProcessRequestParam: + value: Ошибка обработки параметров запроса + RequestBodyProcessErrorAdv: + value: Ошибка обработки тела запроса + CampaignNotBelongSeller: + value: кампания не принадлежит продавцу + CampaignNotFoundAdv: + value: + error: кампания не найдена + FailedGetAdvertTools: + value: не удалось получить активность инструментов продвижения + AvailableOnlyForAutoCampaign: + description: Доступно только для автоматических кампаний + value: + error: доступно только для автоматических кампаний + AvailableOnlyActiveCampaign: + description: Доступно только для активных кампаний + value: + error: доступно только для активных кампаний + EmptyAuthHeader: + summary: EmptyAuthHeader + description: Пустой заголовок Authorization + value: 'Error ae394f96-e258-432d-af13-a53a3d31f8b0: request rejected, unauthorized: 1; empty Authorization header' + TokenScopeNotAllowed: + summary: TokenScopeNotAllowed + description: Тип используемого токена не подходит для этого метода + value: 'Error ae394f96-e258-432d-af13-a53a3d31f8b0: request rejected, unauthorized: token scope not allowed for this API route' + Response200: + description: Успешно + value: + data: + templates: + - id: id + name: name + text: text + error: false + errorText: '' + additionalErrors: {} + IncorrectTemplateType: + description: Неверный тип шаблона + value: + data: null + error: true + errorText: Неизвестный тип шаблона + additionalErrors: null + TemplateLimitExceeded: + description: Превышен лимит шаблонов + value: + data: null + error: true + errorText: Превышен лимит шаблонов + additionalErrors: null + InvalidTemplateNameLen: + description: Недопустимая длина названия шаблона + value: + data: null + error: true + errorText: Допустимая длина названия шаблона от 1 до 100 символов + additionalErrors: null + InvalidCommentLenTemplate: + description: Недопустимая длина комментария в шаблоне + value: + data: null + error: true + errorText: Допустимая длина комментария в шаблоне от 2 до 1000 символов + additionalErrors: null + InvalidRequest: + description: Неверный запрос + value: + data: null + error: true + errorText: Неверный запрос + additionalErrors: null + EditTemplateError: + description: Не удалось отредактировать шаблон + value: + data: null + error: true + errorText: Не удалось отредактировать шаблон + additionalErrors: null + PostTemplateOK: + description: Успешно + value: + data: + id: '1234' + error: false + errorText: '' + additionalErrors: null + PatchDelRespOK: + description: Успешно + value: + data: true + error: false + errorText: '' + additionalErrors: null + ErrorDeleteBD: + description: Ошибка удаления шаблона из базы данных + value: + data: null + error: true + errorText: Ошибка удаления шаблона из базы данных + additionalErrors: null + FeedbackErr400: + description: '' + value: + data: null + error: true + errorText: Something went wrong + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + FeedbackErr403: + description: '' + value: + data: null + error: true + errorText: Ошибка авторизации + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + FeedbackErr404: + description: '' + value: + data: null + error: true + errorText: Не найден отзыв id + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + CouldNotFixFeedback: + description: '' + value: + data: null + error: true + errorText: Не удалось исправить отзыв + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + responseInaccessibleBackGoodError422: + description: '' + value: + data: null + error: true + errorText: Запрос на возврат покупок недоступен + additionalErrors: null + requestId: f551e94d-9bd5-431d-a4b6-b78106fe6348 + responseUnsuccessfullyBackGoodError422: + description: '' + value: + data: null + error: true + errorText: Не удалось выполнить запрос на возврат покупок + additionalErrors: null + requestId: 93ea349d-d0ec-41b0-aaac-a8f5f137a109 + responseDoNotGetFeedback400: + description: '' + value: + data: null + error: true + errorText: Не удалось получить отзыв + additionalErrors: null + requestId: 958d9676-b50c-41d6-b7ce-3c9f0bc3b822 + ReviewRatingNotAvailable: + description: '' + value: + data: null + error: true + errorText: Оценка отзыва недоступна + additionalErrors: null + requestId: 9e414d33-5cdd-44e6-8283-321c5cfecf63 + EmptyFieldsInRequest: + description: Отсутствуют поля оценок в запросе + value: + data: null + error: true + errorText: Пустые поля в запросе + additionalErrors: null + requestId: f538dc5b-bb66-45d0-b9dd-ac11087029e1 + unknownEstimate: + description: '' + value: + data: null + error: true + errorText: Неизвестная оценка, выберите доступную из списка + additionalErrors: null + requestId: 32e010ea-3294-4047-a41b-e6f1f82c7916 + Commission: + summary: Commission + description: Комиссия + value: + report: + - kgvpMarketplace: 15.5 + kgvpSupplier: 12.5 + kgvpSupplierExpress: 10.5 + paidStorageKgvp: 15.5 + parentID: 657 + parentName: Бытовая техника + subjectID: 6461 + subjectName: Оборудование зуботехническое + CommissionChina: + summary: CommissionChina + description: Комиссия Китай + value: + report: + - kgvpChina: 15.5 + parentID: 657 + parentName: 国内设备 + subjectID: 6461 + subjectName: 牙齿矫正设备 + CommissionTurkey: + summary: CommissionTurkey + description: Комиссия Турция + value: + report: + - kgvpTurkey: 15.5 + parentID: 657 + parentName: Home appliance + subjectID: 6461 + subjectName: Dental equipment + CommissionUzbekistan: + summary: CommissionUzbekistan + description: Комиссия Узбекистан + value: + report: + - kgvpUzbekistan: 15.5 + parentID: 657 + parentName: Бытовая техника + subjectID: 6461 + subjectName: Оборудование зуботехническое + securitySchemes: + HeaderApiKey: + type: apiKey + name: Authorization + in: header + parameters: + uploadID: + in: query + name: uploadID + description: ID загрузки + required: true + schema: + type: integer + example: 146567 + limit: + in: query + name: limit + description: "Сколько элементов вывести на одной странице (пагинация). Максимум 1\_000 элементов" + schema: + type: integer + format: uint + example: 10 + minimum: 1 + maximum: 200 + required: true + offset: + in: query + name: offset + description: Сколько элементов пропустить + schema: + type: integer + format: uint + example: 0 + minimum: 0 + nmID: + in: query + name: nmID + description: Артикул Wildberries + schema: + type: integer + example: 1 + required: true + filterNmID: + in: query + description: Артикул Wildberries, по которому искать товар + name: filterNmID + schema: + type: integer + example: 44589768676 + Warehouse: + name: warehouseId + in: path + required: true + description: ID склада продавца + schema: + type: integer + format: int64 + example: 1 + Supply: + name: supplyId + in: path + required: true + description: ID поставки + schema: + type: string + example: WB-GI-1234567 + Trbx: + name: trbxId + in: path + required: true + description: ID короба + schema: + type: string + example: WB-TRBX-1234567 + Order: + name: orderId + in: path + required: true + description: ID сборочного задания + schema: + type: integer + format: int64 + example: 5632423 + Pass: + name: passId + in: path + required: true + description: ID пропуска + schema: + type: integer + format: int64 + example: 45 + Next: + name: next + in: query + required: true + schema: + type: integer + format: int64 + description: Параметр пагинации. Устанавливает значение, с которого надо получить следующий пакет данных. Для получения полного списка данных должен быть равен 0 в первом запросе. Для следующих запросов необходимо брать значения из одноимённого поля в ответе. + Limit: + name: limit + in: query + required: true + schema: + type: integer + minimum: 1 + maximum: 1000 + description: Параметр пагинации. Устанавливает предельное количество возвращаемых данных. + flag: + in: query + name: flag + schema: + type: integer + default: 0 + required: false + description: | + Если параметр `flag=0` (или не указан в строке запроса), при вызове API возвращаются данные, у которых значение поля `lastChangeDate` (дата время обновления информации в сервисе) больше или равно переданному значению параметра `dateFrom`. При этом количество возвращенных строк данных варьируется в интервале от 0 до примерно 100 000.
Если параметр `flag=1`, то будет выгружена информация обо всех заказах или продажах с датой, равной переданному параметру `dateFrom` (в данном случае время в дате значения не имеет). При этом количество возвращенных строк данных будет равно количеству всех заказов или продаж, сделанных в указанную дату, переданную в параметре `dateFrom`. + DateTimeFrom: + in: query + name: dateFrom + required: true + description: | + Начало отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: + + * `2023-12-01` + * `2023-12-01T23:59:59` + * `2023-12-01T00:00:00.12345` + * `2023-12-01T00:00:00` + schema: + type: string + DateTimeTo: + in: query + name: dateTo + required: true + description: | + Конец отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: + + * `2023-12-01` + * `2023-12-01T23:59:59` + * `2023-12-01T00:00:00.12345` + * `2023-12-01T00:00:00` + schema: + type: string + Date: + in: query + name: date + description: | + Дата, которая входит в отчётный период, `ГГГГ-ММ-ДД`. +
+ Чтобы получить данные за всё время с августа 2023, не указывайте этот параметр + schema: + type: string + example: {} + required: true + DateFrom: + in: query + name: dateFrom + description: | + Начало отчётного периода, `ГГГГ-ММ-ДД` + schema: + type: string + example: {} + required: true + DateTo: + in: query + name: dateTo + description: | + Конец отчётного периода, `ГГГГ-ММ-ДД` + schema: + type: string + example: {} + required: true + DateBasic: + in: query + name: date + description: | + Дата, которая входит в отчётный период, `ГГГГ-ММ-ДД` + schema: + type: string + example: {} + DateFromGoodsLabeling: + in: query + name: dateFrom + description: | + Начало отчётного периода, `ГГГГ-ММ-ДД` + schema: + type: string + format: date + example: {} + required: true + DateToGoodsLabeling: + in: query + name: dateTo + description: | + Конец отчётного периода, `ГГГГ-ММ-ДД` + schema: + type: string + format: date + example: {} + required: true + Locale: + name: locale + in: query + schema: + type: string + example: ru + description: | + Язык полей ответа `parentName` и `subjectName`: + - `ru` — русский + - `en` — английский + - `zh` — китайский + is_archive: + in: query + name: is_archive + description: | + Состояние заявки: + * `false` — на рассмотрении + * `true` — в архиве + required: true + schema: + type: boolean + example: true + id: + in: query + name: id + description: ID заявки + schema: + type: string + format: UUID + example: fe3e9337-e9f9-423c-8930-946a8ebef80 + nm_id: + in: query + name: nm_id + description: Артикул WB + schema: + type: integer + example: 196320101 + requestBodies: + SupplierTaskRequest: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Goods' + SupplierTaskRequestSize: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/SizeGoodsBody' + PatchClaimReq: + required: true + description: Ответ на заявку + content: + application/json: + schema: + type: object + properties: + id: + description: ID заявки + type: string + format: UUID + example: fe3e9337-e9f9-423c-8930-946a8ebef80 + action: + description: Действие с заявкой.
Используйте одно из значений массива `actions` — ответа [метода получения заявок](./#/paths/~1api~1v1~1claims/get) + type: string + example: autorefund1 + responses: + ResponseGoodsLists: + description: Товары + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + listGoods: + description: Информация о товарах + type: array + items: + $ref: '#/components/schemas/GoodsList' + ResponseGoodHistories: + description: Информация о товарах в загрузке + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + uploadID: + type: integer + description: ID загрузки + example: 3235236546 + historyGoods: + type: array + description: Информация о товарах в загрузке + items: + $ref: '#/components/schemas/GoodHistory' + ResponseGoodBufferHistories: + description: Информация о товарах в загрузке + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + uploadID: + type: integer + description: ID загрузки + example: 3235236546 + bufferGoods: + type: array + description: Информация о товарах в загрузке + items: + $ref: '#/components/schemas/GoodBufferHistory' + error: + type: boolean + description: Флаг ошибки + example: false + errorText: + type: string + description: Текст ошибки + example: '' + ResponseTaskHistory: + description: Состояние загрузки + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/SupplierTaskMetadata' + error: + type: boolean + description: Флаг ошибки + example: false + errorText: + description: "Текст ошибки\n\n
\n

Ошибка The product is in quarantine возникает, если новая цена со скидкой хотя бы в\_3 раза меньше старой. Вы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина в\_личном кабинете

\n
\n" + type: string + example: The product is in quarantine + ResponseTaskBuffer: + description: Состояние загрузки + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/SupplierTaskMetadataBuffer' + error: + type: boolean + description: Флаг ошибки + example: false + errorText: + type: string + description: Текст ошибки + example: '' + ResponseSizeLists: + description: Размеры + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + listGoods: + description: Размеры товара + type: array + items: + $ref: '#/components/schemas/SizeGood' + error: + description: Флаг ошибки + type: boolean + example: false + errorText: + description: Текст ошибки + type: string + SuccessTaskResponse: + description: Успешно + content: + application/json: + schema: + $ref: '#/components/schemas/TaskCreated' + type: object + properties: + details: + type: array + items: + type: object + properties: + nmID: + type: integer + description: Артикул Wildberries + example: 123456789 + sum: + type: integer + description: Сумма заказа + example: 3540 + currency: + type: string + description: Валюта заказа + example: RUB + dateFrom: + type: string + description: Начало отчётного периода + example: {} + dateTo: + type: string + description: Конец отчётного периода + example: {} + Responses401: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + AuthorizationError: + description: Ошибка авторизации + value: + data: null + error: true + errorText: Authorization error + UnknownMethod: + description: Неизвестный метод + value: + data: + type: object + nullable: true + error: true + errorText: Unknown method + AccessDenied: + description: Доступ запрещён + value: + data: + type: object + nullable: true + error: true + errorText: Access denied + Responses500: + description: Внутренняя ошибка сервиса + ExceededLimitRequests429: + description: Слишком много запросов + Responses208: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TaskAlreadyExistsError' + examples: + TaskAlreadyExists: + description: | + Такая загрузка уже есть + value: + data: + id: 1111111 + alreadyExists: true + error: false + errorText: Task already exists + ErrorResponse: + description: Другие ошибки + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + errorText: + type: string + example: Unknown error + ErrorInternalResponse: + description: Прочие ошибки + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + errorText: + type: string + example: Internal server error + text/plain: + schema: + type: string + example: Internal server error + ErrorUnknownUser: + description: Ошибка авторизации + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + example: true + errorText: + type: string + example: Unknown user + code: + type: integer + description: Код ошибки + example: 401 + message: + description: Описание ошибки + type: string + example: Текст ошибки + ErrorWrongParameters: + description: Неправильный запрос + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + example: true + errorText: + type: string + example: Invalid query params + NotFound: + description: Запрашиваемый ресурс не найден + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: NotFound + message: Не найдено + Unauthorized: + description: Пользователь не авторизован + content: + application/json: + schema: + type: string + examples: + TokenMissing: + $ref: '#/components/examples/TokenMissing' + TokenInvalid: + $ref: '#/components/examples/TokenInvalid' + TokenNotFound: + $ref: '#/components/examples/TokenNotFound' + ExceededLimitRequests: + description: Превышен лимит по запросам + AccessDenied: + description: Доступ запрещён + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: AccessDenied + message: Доступ запрещён + InternalServerError: + description: Внутренняя ошибка сервиса + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: InternalServerError + message: Внутренняя ошибка сервиса + Response400: + description: Неправильный запрос + content: + application/json: + schema: + type: string + example: Bad 'dateFrom' param + SuccessReceivingResponse: + description: Отчёт + content: + application/json: + schema: + type: object + properties: + report: + type: array + items: + type: object + properties: + count: + type: integer + description: Количество товаров, шт. + example: 40 + giCreateDate: + type: string + format: date + description: Дата создания поставки + example: {} + incomeId: + type: integer + description: Номер поставки + example: 11834106 + nmID: + type: integer + description: Артикул Wildberries + example: 123456789 + shkСreateDate: + type: string + format: date + description: Дата приёмки + example: {} + subjectName: + type: string + description: Предмет (подкатегория) + example: Добавки пищевые + sum: + deprecated: true + type: integer + description: Суммарная стоимость приёмки, ₽ + example: 200 + total: + type: number + description: Суммарная стоимость приёмки, ₽ с копейками + example: 200.5 + SuccessIncorrectProductsResponse: + description: Удержания за подмены + content: + application/json: + schema: + type: object + properties: + report: + type: array + items: + type: object + properties: + amount: + type: number + description: Цена, ₽ + example: 24514.5 + date: + type: string + description: Дата + example: {} + lostReason: + type: string + description: Причина удержания + example: Подмена. Вместо большой железной дороги поступила маленькая коробка. + nmID: + type: integer + description: Артикул Wildberries + example: 123456789 + photoUrl: + type: string + description: Фото + example: https://mstatic.wbstatic.net/writeoff_to_the_seller/12345678911-2023-06-21T12:13:37.768Z-1.png + shkID: + type: integer + description: Штрихкод + example: 14555724540 + SuccessCoefficientResponse: + description: Коэффициент логистики и хранения + content: + application/json: + schema: + type: object + properties: + report: + type: array + items: + type: object + properties: + actualHeight: + type: number + description: Фактическая высота, см + example: 6 + actualLength: + type: number + description: Фактическая длина, см + example: 39 + actualVolume: + type: number + description: Фактический объём, л + example: 7.02 + actualWidth: + type: number + description: Фактическая ширина, см + example: 30 + date: + type: string + description: Дата измерения в формате RFC 3339. Для расчёта используются измерения за 30 дней, до начала отчётной недели + example: {} + dimensionDifference: + type: number + description: Разница в габаритах, % + example: 101.74 + height: + type: number + description: Высота из карточки, см + example: 10 + length: + type: number + description: Длина из карточки, см + example: 30 + logWarehouseCoef: + type: number + description: Коэффициент логистики и хранения для товара + example: 1 + nmID: + type: integer + description: Артикул Wildberries + example: 123456789 + photoUrls: + type: string + description: Фото измерений + example: + - https://photos.wbstatic.net/handheld-goods-measurements-photo/123456789_73984211-e6c3-44e2-66af-0d44d2620308.jpg + - https://photos.wbstatic.net/handheld-goods-measurements-photo/123456789_8ee5ff5e-c6bb-426c-7d12-c2dd228c0f62.jpg + title: + type: string + description: Наименование товара + example: Сухой корм для крупных собак ассорти мясное, 10 кг + volume: + type: number + description: Объём из карточки, л + example: 6.9 + width: + type: number + description: Ширина из карточки, см + example: 23 + SuccessGoodsLabelingResponse: + description: Успешно + content: + application/json: + schema: + type: object + properties: + report: + type: array + items: + type: object + properties: + amount: + description: Сумма штрафа, руб + type: number + date: + description: Дата + type: string + format: date-time + incomeId: + description: Номер поставки + type: integer + nmID: + description: Артикул WB + type: integer + photoUrls: + description: URL фото товара + type: array + items: + type: string + shkID: + description: Штрихкод товара в Wildberries + type: integer + sku: + description: Баркод из карточки товара + type: string + example: + report: + - amount: 1500 + date: '2024-03-26T01:00:00Z' + incomeId: 18484008 + nmID: 49434732 + photoUrls: + - https://static-basket-03.wb.ru/vol54/photo-fixation-violation-shk-excise/12345678900-1811460999-1.jpg + - https://static-basket-03.wb.ru/vol54/photo-fixation-violation-shk-excise/12345678900-1811461000-2.jpg + - https://static-basket-03.wb.ru/vol54/photo-fixation-violation-shk-excise/12345678900-1811461001-3.jpg + shkID: 17346434621 + sku: '4630153500834' + SuccessCharacteristicsTaskResponse: + description: Успех + content: + application/json: + schema: + type: object + properties: + report: + type: array + items: + type: object + properties: + amount: + type: integer + description: Сумма штрафа в копейках + date: + type: string + format: date + description: Дата изменения характеристик товара на складе + newBarcode: + type: string + description: Новый баркод в карточке товара + newColor: + type: string + description: Новый цвет + newSa: + type: string + description: Новый артикул продавца + newShkID: + type: integer + description: Новый штрихкод товара в Wildberries + newSize: + type: string + description: Новый размер + nmID: + type: integer + description: Артикул WB + oldBarcode: + type: string + description: Старый баркод из карточки товара + oldColor: + type: string + description: Старый цвет + oldSa: + type: string + description: Старый артикул продавца + oldShkID: + type: integer + description: Старый штрихкод товара в Wildberries + oldSize: + type: string + description: Старый размер + example: + report: + - amount: 135890 + date: '2024-03-01T01:00:00Z' + newBarcode: '22222222222222' + newColor: темно-синий,голубой + newSa: hjt13/темно-синий,голубой + newShkID: 44444444444 + newSize: '80' + nmID: 123654789 + oldBarcode: '111111111111111' + oldColor: темно-синий,голубой + oldSa: hjt13/темно-синий,голубой + oldShkID: 333333333 + oldSize: '43' + 400BadRequestResponse: + description: Некорректный запрос + content: + application/problem+json: + schema: + type: object + properties: + title: + type: string + description: ID ошибки + detail: + type: string + description: Описание ошибки + requestId: + type: string + description: ID запроса + origin: + type: string + description: Сервис, вернувший ошибку + examples: + IncorrectDateTimeFrom: + $ref: '#/components/examples/IncorrectDateTimeFrom' + IncorrectDateTimeTo: + $ref: '#/components/examples/IncorrectDateTimeTo' + MissingDateTimeFrom: + $ref: '#/components/examples/MissingDateTimeFrom' + MissingDateTimeTo: + $ref: '#/components/examples/MissingDateTimeTo' + DateRangeExceeded: + $ref: '#/components/examples/DateRangeExceeded' + DateRanges: + $ref: '#/components/examples/DateRanges' + BadRequest: + description: Некорректный запрос + RateLimit: + description: Слишком много запросов + PatchClaimSuccessResponse: + description: Успешно + GetClaimsSuccessResponse: + description: Успешно + content: + application/json: + schema: + type: object + example: + claims: + - id: fe3e9337-e9f9-423c-8930-946a8ebef80 + claim_type: 1 + status: 2 + status_ex: 8 + nm_id: 196320101 + user_comment: Длина провода не соответствует описанию + wb_comment: "Продавец одобрил вашу заявку на возврат. В течение 14 дней принесите товар в определённый пункт выдачи — всё зависит от того, как вы получали заказ:\r\n\r\n∙ В пункте выдачи. Тогда нужно будет вернуть в тот же пункт по тому же адресу. \r\n∙ Курьером. Зайдите в раздел «Покупки» на сайте — там будет адрес пункта, в который нужно принести товар.\r\n\r\nВозьмите с собой пакет со штрих-кодом, в котором был товар. Если вы его потеряли или выбросили — ничего страшного, мы всё равно сможем провести возврат. Но в будущем, пожалуйста, сохраняйте этот пакет. \r\n\r\nДеньги придут на вашу карту или счёт в течение 10 дней после возврата товара на склад.\r\n\r\nЕсли у вас крупногабаритный товар, то для его возврата вызовите курьера через раздел «Доставки»." + dt: '2024-03-26T17:06:12.245611' + imt_name: Кабель 0.5 м, 3797 + order_dt: '2020-10-27T05:18:56' + dt_update: '2024-05-10T18:01:06.999613' + photos: + - //photos.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/1.jpeg + - //photos.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/2.jpeg + video_paths: + - //video.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/1.mp4 + actions: + - autorefund1 + - approve1 + price: 157 + currency_code: '643' + total: 31 + properties: + claims: + type: array + description: Заявки + items: + type: object + properties: + id: + type: string + description: ID заявки + format: UUID + claim_type: + type: integer + description: | + Источник заявки: + * `1` — портал покупателей + * `3` — чат + status: + type: integer + description: | + Решение по возврату покупателю: + * `0` — на рассмотрении + * `1` — отказ + * `2` — одобрено + status_ex: + type: integer + description: | + Статус товара: + * `0` — на рассмотрении + * `1` — остаётся у покупателя + * `2` — без возврата + * `5` — без возврата + * `8` — товар будет возвращён в реализацию или оформлен на возврат после проверки WB + * `10` — возврат продавцу + nm_id: + type: integer + description: Артикул WB + user_comment: + type: string + maxLength: 1000 + description: Комментарий покупателя + wb_comment: + type: string + maxLength: 10000 + description: Ответ покупателю + dt: + type: string + format: date-time + description: Дата и время оформления заявки покупателем + imt_name: + type: string + description: Название товара + order_dt: + type: string + format: date-time + description: Дата и время заказа + dt_update: + type: string + format: date-time + description: Дата и время рассмотрения заявки. Для нерассмотренной заявки — дата и время оформления + photos: + type: array + description: Фотографии из заявки покупателя + minItems: 0 + maxItems: 10 + items: + type: string + format: JPEG + video_paths: + type: array + description: Видео из заявки покупателя + minItems: 0 + maxItems: 1 + items: + type: string + format: MP4 + actions: + type: array + description: | + Варианты ответа продавца.
Отклонённые заявки можно пересмотреть. Если массив пуст, с заявкой работать нельзя. + * `approve1` — одобрить с проверкой брака.
Деньги вернутся покупателю после возврата товара. Товар будет проверен на складе. При подтверждении брака/ошибки вложения товар будет отправлен продавцу. Если брак/ошибка вложения не подтвердятся, товар будет возвращён в продажу. + * `approve2` — одобрить и забрать товар.
Деньги вернутся покупателю после возврата товара. Товар будет отправлен продавцу. + * `autorefund1` — одобрить без возврата товара.
Товар останется у покупателя. Деньги за него будут возвращены покупателю без возврата товара. + * `reject1` — отклонить с шаблоном ответа:
Брак не обнаруженЗдравствуйте! Заявка онлайн на проверку качества товара рассмотрена.
По предоставленной информации (фото, видео, комментарий) брак не подтвержден.
+ * `reject2` — отклонить с шаблоном ответа:
Добавить фото/видеоДобрый день! Заявка онлайн на проверку качества товара рассмотрена и отклонена по причине некорректного оформления. Обращаем Ваше внимание, что в комментариях должна быть представлена информация (описание) о наличии предполагаемого производственного брака, а фотографии (не менее двух) и (или) видео - отображать следующую информацию:
1. Обзорное изображение товара целиком
2. Крупный план вшивной бирки (или другая маркировка товара)
3. При наличии упаковки со штрих-кодом - фото ШК.
4. Предполагаемый дефект товара.
Просим Вас переоформить заявку с соблюдением необходимых условий.
+ * `reject3` — отклонить с шаблоном ответа:
Направить в сервисный центрЗдравствуйте! Мы внимательно прочитали заявку, проверили фото и видео. К сожалению, мы не нашли брак, повреждение или несоответствие описанию в вашем товаре. Обратитесь напрямую в сервисный центр — его адрес и контакты есть на сайте производителя или на гарантийном талоне. Там проведут окончательную проверку товара и выдадут вам акт. Если центр нашёл брак, то отправьте этот акт в чат на нашем сайте.
+ items: + type: string + price: + type: number + description: Фактическая цена с учетом всех скидок. Взимается с покупателя + currency_code: + type: string + description: Код валюты цены + total: + type: integer + description: Количество заявок, соответствующих параметрам запроса. Без учёта `limit` и `offset` + ErrorRateLimit: + description: Слишком много запросов + content: + application/json: + schema: + type: object + properties: + code: + type: integer + description: Код ошибки + example: 429 + message: + description: Описание ошибки + type: string + example: Текст ошибки + Error400GetClaims: + description: Некорректный запрос + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: ID ошибки + example: Invalid query params + detail: + description: Описание ошибки + type: string + example: 'Failed to deserialize query string: missing field `is_archive`' + requestId: + description: ID запроса + type: string + example: e0aedc10-9789-49c1-9a83-d8422b4703dc + Error400PatchClaim: + description: Некорректный запрос + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: ID ошибки + example: Validation error + detail: + description: Описание ошибки + type: string + example: 'Input model is not valid; Details: The Action field is required.' + requestId: + description: ID запроса + type: string + example: 0HN3PI6JUGFSL:00000004 From 40aaccf8cc81975c6fd0a2311f69a689939a667e Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 10 Jun 2024 02:45:15 +0700 Subject: [PATCH 15/28] fix --- poetry.lock | 2 +- pyproject.toml | 1 + .../language_converters/python/model_generator.py | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 527bf0b..aaa3477 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2526,4 +2526,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = ">=3.11,<3.12" -content-hash = "c21cbc24f5d1463bc1faec34c33f376301878ecc6a402d29c7190619107a85ba" +content-hash = "b565c1c676c086ceff431cd23c305128150242e51972600647287d129b42af9b" diff --git a/pyproject.toml b/pyproject.toml index 37bc7cd..991d1c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,6 +29,7 @@ black = ">=21.10b0" isort = ">=5.10.1" deep-translator = "^1.11.4" case-converter = "^1.1.0" +pyyaml = "^6.0.1" [tool.poetry.dev-dependencies] Pygments = ">=2.10.0" diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 5ce58a6..0e2af10 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -129,6 +129,14 @@ def generate_models( for response_name, response in components.responses.items(): name = pascalcase(response_name) if response.content is None: + models.append( + Model( + file_name=name, + content=f"from pydantic import BaseModel\n\nclass {name}(BaseModel):\n pass", + openapi_object=Schema(), + properties=[], + ) + ) continue if "application/json" not in response.content: continue From 9013eb709ac5c0d1812e11fa561082df5bbdd8c9 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Wed, 17 Jul 2024 17:20:29 +0400 Subject: [PATCH 16/28] fix --- .vscode/launch.json | 35 +-- pyproject.toml | 14 +- src/openapi_python_generator/generate_data.py | 5 +- .../python/model_generator.py | 208 +++++++++--------- .../python/service_generator.py | 2 + .../language_converters/python/utils.py | 1 + tests/test_data/test_api/__init__.py | 3 + tests/test_data/test_api/api_config.py | 25 +++ .../models/ApiV1ProductsListPostResponse.py | 10 + .../ApiV1ProductsSearchByImagePostResponse.py | 10 + .../test_api/models/BodyProductGetList.py | 18 ++ .../models/BodyProductSearchByImage.py | 12 + .../test_api/models/HtTPValidationError.py | 14 ++ tests/test_data/test_api/models/IcolorRead.py | 12 + .../test_api/models/IcompositionRead.py | 12 + .../test_data/test_api/models/InextCursor.py | 14 ++ .../test_api/models/IparameterRead.py | 14 ++ .../test_api/models/IproductOptionRead.py | 14 ++ .../test_data/test_api/models/IproductRead.py | 41 ++++ .../models/IresponsePaginatedIproductRead.py | 23 ++ .../test_api/models/IwholesaleOptionRead.py | 16 ++ .../test_api/models/ListOrderEnum.py | 7 + .../test_api/models/ProductStatusEnum.py | 8 + .../test_api/models/ValidationError.py | 16 ++ tests/test_data/test_api/models/__init__.py | 16 ++ tests/test_data/test_api/services/__init__.py | 1 + .../services/async_products_service.py | 149 +++++++++++++ 27 files changed, 572 insertions(+), 128 deletions(-) create mode 100644 tests/test_data/test_api/__init__.py create mode 100644 tests/test_data/test_api/api_config.py create mode 100644 tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py create mode 100644 tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py create mode 100644 tests/test_data/test_api/models/BodyProductGetList.py create mode 100644 tests/test_data/test_api/models/BodyProductSearchByImage.py create mode 100644 tests/test_data/test_api/models/HtTPValidationError.py create mode 100644 tests/test_data/test_api/models/IcolorRead.py create mode 100644 tests/test_data/test_api/models/IcompositionRead.py create mode 100644 tests/test_data/test_api/models/InextCursor.py create mode 100644 tests/test_data/test_api/models/IparameterRead.py create mode 100644 tests/test_data/test_api/models/IproductOptionRead.py create mode 100644 tests/test_data/test_api/models/IproductRead.py create mode 100644 tests/test_data/test_api/models/IresponsePaginatedIproductRead.py create mode 100644 tests/test_data/test_api/models/IwholesaleOptionRead.py create mode 100644 tests/test_data/test_api/models/ListOrderEnum.py create mode 100644 tests/test_data/test_api/models/ProductStatusEnum.py create mode 100644 tests/test_data/test_api/models/ValidationError.py create mode 100644 tests/test_data/test_api/models/__init__.py create mode 100644 tests/test_data/test_api/services/__init__.py create mode 100644 tests/test_data/test_api/services/async_products_service.py diff --git a/.vscode/launch.json b/.vscode/launch.json index 85e6f64..e1e345f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,16 +1,21 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Test", - "type": "debugpy", - "request": "launch", - "program": "${workspaceFolder}/src/openapi_python_generator", - "args": ["--library", "aiohttp", "./openapi.yaml", "test_api"], - "cwd": "${workspaceFolder}/tests/test_data" - } - ] -} \ No newline at end of file + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Test", + "type": "debugpy", + "request": "launch", + "program": "${workspaceFolder}/src/openapi_python_generator", + "args": [ + "--library", + "aiohttp", + "http://localhost:8000/openapi.json", + "test_api" + ], + "cwd": "${workspaceFolder}/tests/test_data" + } + ] +} diff --git a/pyproject.toml b/pyproject.toml index 991d1c5..e095fb0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,9 +8,7 @@ readme = "README.md" homepage = "https://github.com/MarcoMuellner/openapi-python-generator" repository = "https://github.com/MarcoMuellner/openapi-python-generator" documentation = "https://openapi-python-generator.readthedocs.io" -classifiers = [ - "Development Status :: 3 - Alpha", -] +classifiers = ["Development Status :: 3 - Alpha"] keywords = ["OpenAPI", "Generator", "Python", "async"] package-mode = true @@ -18,9 +16,9 @@ package-mode = true Changelog = "https://github.com/MarcoMuellner/openapi-python-generator/releases" [tool.poetry.dependencies] -python = ">=3.11,<3.12" +python = ">=3.8,<3.12" httpx = "*" -pydantic = "^2.6.2" +pydantic = ">=1.10.1" orjson = "^3.7.2" openapi-pydantic = "^0.4.0" Jinja2 = "^3.1.2" @@ -33,7 +31,7 @@ pyyaml = "^6.0.1" [tool.poetry.dev-dependencies] Pygments = ">=2.10.0" -coverage = {extras = ["toml"], version = "^6.4.1"} +coverage = { extras = ["toml"], version = "^6.4.1" } darglint = ">=1.8.1" flake8 = ">=3.0.1" flake8-bandit = ">=2.1.2" @@ -49,8 +47,8 @@ pytest = ">=6.2.5" pyupgrade = ">=2.29.1" safety = ">=1.10.3" typeguard = ">=2.13.3" -xdoctest = {extras = ["colors"], version = ">=0.15.10"} -myst-parser = {version = ">=0.16.1"} +xdoctest = { extras = ["colors"], version = ">=0.15.10" } +myst-parser = { version = ">=0.16.1" } pytest-cov = "^3.0.0" fastapi = "^0.109.2" uvicorn = "^0.18.1" diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index f0cff7f..ccc98de 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -58,8 +58,9 @@ def get_open_api(source: Union[str, Path]) -> Any: source.startswith("http://") or source.startswith("https://") ): text = httpx.get(source).text - with open(source, "r") as f: - text = f.read() + else: + with open(source, "r") as f: + text = f.read() except FileNotFoundError: click.echo( f"File {source} not found. Please make sure to pass the path to the OpenAPI 3.0 specification." diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 0e2af10..81f84cf 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -126,128 +126,130 @@ def generate_models( ) ) - for response_name, response in components.responses.items(): - name = pascalcase(response_name) - if response.content is None: - models.append( - Model( - file_name=name, - content=f"from pydantic import BaseModel\n\nclass {name}(BaseModel):\n pass", - openapi_object=Schema(), - properties=[], + if components.responses is not None: + for response_name, response in components.responses.items(): + name = pascalcase(response_name) + if response.content is None: + models.append( + Model( + file_name=name, + content=f"from pydantic import BaseModel\n\nclass {name}(BaseModel):\n pass", + openapi_object=Schema(), + properties=[], + ) + ) + continue + if "application/json" not in response.content: + continue + media_type = response.content["application/json"] + + if media_type.media_type_schema is None: + continue + + if isinstance(media_type.media_type_schema, Reference): + ref_name = media_type.media_type_schema.ref.split("/")[-1] + ref_model_name = pascalcase(ref_name) + models.append( + Model( + file_name=name, + content=f"from .{ref_model_name} import {ref_model_name}\n\nclass {name}({ref_model_name}):\n pass", + openapi_object=Schema(), + properties=[], + ) ) + continue + + properties = [] + property_iterator = ( + media_type.media_type_schema.properties.items() + if media_type.media_type_schema.properties is not None + else {} + ) + for prop_name, property in property_iterator: + if isinstance(property, Reference): + conv_property = _generate_property_from_reference( + name, prop_name, property, media_type.media_type_schema + ) + else: + conv_property = _generate_property_from_schema( + name, prop_name, property, media_type.media_type_schema + ) + properties.append(conv_property) + + generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( + schema_name=name, + schema=media_type.media_type_schema, + properties=properties, ) - continue - if "application/json" not in response.content: - continue - media_type = response.content["application/json"] - if media_type.media_type_schema is None: - continue + try: + compile(generated_content, "", "exec") + except SyntaxError as e: # pragma: no cover + click.echo( + f"Error in model {name}: {traceback.format_exc()}" + ) # pragma: no cover - if isinstance(media_type.media_type_schema, Reference): - ref_name = media_type.media_type_schema.ref.split("/")[-1] - ref_model_name = pascalcase(ref_name) models.append( Model( file_name=name, - content=f"from .{ref_model_name} import {ref_model_name}\n\nclass {name}({ref_model_name}):\n pass", - openapi_object=Schema(), - properties=[], + content=generated_content, + openapi_object=media_type.media_type_schema, + properties=properties, ) ) - continue - - properties = [] - property_iterator = ( - media_type.media_type_schema.properties.items() - if media_type.media_type_schema.properties is not None - else {} - ) - for prop_name, property in property_iterator: - if isinstance(property, Reference): - conv_property = _generate_property_from_reference( - name, prop_name, property, media_type.media_type_schema - ) - else: - conv_property = _generate_property_from_schema( - name, prop_name, property, media_type.media_type_schema - ) - properties.append(conv_property) - generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( - schema_name=name, - schema=media_type.media_type_schema, - properties=properties, - ) + if components.requestBodies is not None: + for body_name, body in components.requestBodies.items(): + if body.content is None: + continue + if "application/json" not in body.content: + continue + media_type = body.content["application/json"] - try: - compile(generated_content, "", "exec") - except SyntaxError as e: # pragma: no cover - click.echo( - f"Error in model {name}: {traceback.format_exc()}" - ) # pragma: no cover + if media_type.media_type_schema is None: + continue - models.append( - Model( - file_name=name, - content=generated_content, - openapi_object=media_type.media_type_schema, - properties=properties, - ) - ) + if not isinstance(media_type.media_type_schema, Schema): + continue - for body_name, body in components.requestBodies.items(): - if body.content is None: - continue - if "application/json" not in body.content: - continue - media_type = body.content["application/json"] + name = pascalcase(body_name) - if media_type.media_type_schema is None: - continue + properties = [] + property_iterator = ( + media_type.media_type_schema.properties.items() + if media_type.media_type_schema.properties is not None + else {} + ) + for prop_name, property in property_iterator: + if isinstance(property, Reference): + conv_property = _generate_property_from_reference( + name, prop_name, property, media_type.media_type_schema + ) + else: + conv_property = _generate_property_from_schema( + name, prop_name, property, media_type.media_type_schema + ) + properties.append(conv_property) - if not isinstance(media_type.media_type_schema, Schema): - continue + generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( + schema_name=name, + schema=media_type.media_type_schema, + properties=properties, + ) - name = pascalcase(body_name) + try: + compile(generated_content, "", "exec") + except SyntaxError as e: # pragma: no cover + click.echo(f"Error in model {name}: {traceback.format_exc()}") - properties = [] - property_iterator = ( - media_type.media_type_schema.properties.items() - if media_type.media_type_schema.properties is not None - else {} - ) - for prop_name, property in property_iterator: - if isinstance(property, Reference): - conv_property = _generate_property_from_reference( - name, prop_name, property, media_type.media_type_schema - ) - else: - conv_property = _generate_property_from_schema( - name, prop_name, property, media_type.media_type_schema + models.append( + Model( + file_name=name, + content=generated_content, + openapi_object=media_type.media_type_schema, + properties=properties, ) - properties.append(conv_property) - - generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( - schema_name=name, - schema=media_type.media_type_schema, - properties=properties, - ) - - try: - compile(generated_content, "", "exec") - except SyntaxError as e: # pragma: no cover - click.echo(f"Error in model {name}: {traceback.format_exc()}") - - models.append( - Model( - file_name=name, - content=generated_content, - openapi_object=media_type.media_type_schema, - properties=properties, ) - ) for path_name, path in paths.items(): for http_operation in HTTP_OPERATIONS: diff --git a/src/openapi_python_generator/language_converters/python/service_generator.py b/src/openapi_python_generator/language_converters/python/service_generator.py index d0a573c..e6028fa 100644 --- a/src/openapi_python_generator/language_converters/python/service_generator.py +++ b/src/openapi_python_generator/language_converters/python/service_generator.py @@ -78,6 +78,8 @@ def generate_body_param(operation: Operation) -> Union[str, None]: return "data" elif schema.type is None and schema.oneOf is not None: return "data.dict()" + elif schema.type is None and schema.allOf is not None: + return "data.dict()" else: raise Exception( f"Unsupported schema type for request body: {schema.type}" diff --git a/src/openapi_python_generator/language_converters/python/utils.py b/src/openapi_python_generator/language_converters/python/utils.py index 73040f5..11b795b 100644 --- a/src/openapi_python_generator/language_converters/python/utils.py +++ b/src/openapi_python_generator/language_converters/python/utils.py @@ -139,6 +139,7 @@ def type_converter( # noqa: C901 conversions.append(type_converter(sub_schema, True)) else: import_type = common.normalize_symbol(sub_schema.ref.split("/")[-1]) + import_type = pascalcase(import_type) if import_type == model_name: conversions.append( TypeConversion( diff --git a/tests/test_data/test_api/__init__.py b/tests/test_data/test_api/__init__.py new file mode 100644 index 0000000..7ea1f7d --- /dev/null +++ b/tests/test_data/test_api/__init__.py @@ -0,0 +1,3 @@ +from .api_config import * +from .models import * +from .services import * diff --git a/tests/test_data/test_api/api_config.py b/tests/test_data/test_api/api_config.py new file mode 100644 index 0000000..fd456a8 --- /dev/null +++ b/tests/test_data/test_api/api_config.py @@ -0,0 +1,25 @@ +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class APIConfig(BaseModel): + base_path: str = "" + verify: Union[bool, str] = True + access_token: Optional[str] = None + + def get_access_token(self) -> Optional[str]: + return self.access_token + + def set_access_token(self, value: str): + self.access_token = value + + +class HTTPException(Exception): + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + super().__init__(f"{status_code} {message}") + + def __str__(self): + return f"{self.status_code} {self.message}" diff --git a/tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py b/tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py new file mode 100644 index 0000000..fed37d0 --- /dev/null +++ b/tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py @@ -0,0 +1,10 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class ApiV1ProductsListPostResponse(BaseModel): + """ + Response Product Get List By Ids model + + """ diff --git a/tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py b/tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py new file mode 100644 index 0000000..cc8bd7e --- /dev/null +++ b/tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py @@ -0,0 +1,10 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class ApiV1ProductsSearchByImagePostResponse(BaseModel): + """ + Response Product Search By Image model + + """ diff --git a/tests/test_data/test_api/models/BodyProductGetList.py b/tests/test_data/test_api/models/BodyProductGetList.py new file mode 100644 index 0000000..85ccc61 --- /dev/null +++ b/tests/test_data/test_api/models/BodyProductGetList.py @@ -0,0 +1,18 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class BodyProductGetList(BaseModel): + """ + Body_product_get_list model + + """ + + compositions: Optional[List[str]] = Field(alias="compositions", default=None) + + colors: Optional[List[str]] = Field(alias="colors", default=None) + + options: Optional[List[str]] = Field(alias="options", default=None) + + seller: Optional[Union[str, None]] = Field(alias="seller", default=None) diff --git a/tests/test_data/test_api/models/BodyProductSearchByImage.py b/tests/test_data/test_api/models/BodyProductSearchByImage.py new file mode 100644 index 0000000..2064bb1 --- /dev/null +++ b/tests/test_data/test_api/models/BodyProductSearchByImage.py @@ -0,0 +1,12 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class BodyProductSearchByImage(BaseModel): + """ + Body_product_search_by_image model + + """ + + image: str = Field(alias="image") diff --git a/tests/test_data/test_api/models/HtTPValidationError.py b/tests/test_data/test_api/models/HtTPValidationError.py new file mode 100644 index 0000000..25af8e3 --- /dev/null +++ b/tests/test_data/test_api/models/HtTPValidationError.py @@ -0,0 +1,14 @@ +from typing import * + +from pydantic import BaseModel, Field + +from .ValidationError import ValidationError + + +class HtTPValidationError(BaseModel): + """ + HTTPValidationError model + + """ + + detail: Optional[List[Optional[ValidationError]]] = Field(alias="detail", default=None) diff --git a/tests/test_data/test_api/models/IcolorRead.py b/tests/test_data/test_api/models/IcolorRead.py new file mode 100644 index 0000000..9ff81dd --- /dev/null +++ b/tests/test_data/test_api/models/IcolorRead.py @@ -0,0 +1,12 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class IcolorRead(BaseModel): + """ + IColorRead model + + """ + + name: str = Field(alias="name") diff --git a/tests/test_data/test_api/models/IcompositionRead.py b/tests/test_data/test_api/models/IcompositionRead.py new file mode 100644 index 0000000..2e6b02c --- /dev/null +++ b/tests/test_data/test_api/models/IcompositionRead.py @@ -0,0 +1,12 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class IcompositionRead(BaseModel): + """ + ICompositionRead model + + """ + + name: str = Field(alias="name") diff --git a/tests/test_data/test_api/models/InextCursor.py b/tests/test_data/test_api/models/InextCursor.py new file mode 100644 index 0000000..7f892fa --- /dev/null +++ b/tests/test_data/test_api/models/InextCursor.py @@ -0,0 +1,14 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class InextCursor(BaseModel): + """ + INextCursor model + + """ + + offset: int = Field(alias="offset") + + limit: int = Field(alias="limit") diff --git a/tests/test_data/test_api/models/IparameterRead.py b/tests/test_data/test_api/models/IparameterRead.py new file mode 100644 index 0000000..68178a2 --- /dev/null +++ b/tests/test_data/test_api/models/IparameterRead.py @@ -0,0 +1,14 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class IparameterRead(BaseModel): + """ + IParameterRead model + + """ + + name: str = Field(alias="name") + + values: Optional[List[str]] = Field(alias="values", default=None) diff --git a/tests/test_data/test_api/models/IproductOptionRead.py b/tests/test_data/test_api/models/IproductOptionRead.py new file mode 100644 index 0000000..3a7151a --- /dev/null +++ b/tests/test_data/test_api/models/IproductOptionRead.py @@ -0,0 +1,14 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class IproductOptionRead(BaseModel): + """ + IProductOptionRead model + + """ + + price: Optional[str] = Field(alias="price", default=None) + + name: str = Field(alias="name") diff --git a/tests/test_data/test_api/models/IproductRead.py b/tests/test_data/test_api/models/IproductRead.py new file mode 100644 index 0000000..5c2e528 --- /dev/null +++ b/tests/test_data/test_api/models/IproductRead.py @@ -0,0 +1,41 @@ +from typing import * + +from pydantic import BaseModel, Field + +from .IcolorRead import IcolorRead +from .IcompositionRead import IcompositionRead +from .IparameterRead import IparameterRead +from .IproductOptionRead import IproductOptionRead +from .IwholesaleOptionRead import IwholesaleOptionRead +from .ProductStatusEnum import ProductStatusEnum + + +class IproductRead(BaseModel): + """ + IProductRead model + + """ + + name: Optional[str] = Field(alias="name", default=None) + + description: Optional[str] = Field(alias="description", default=None) + + images: Optional[List[str]] = Field(alias="images", default=None) + + thumbnail_images: Optional[List[str]] = Field(alias="thumbnail_images", default=None) + + id: str = Field(alias="id") + + parameters: Optional[List[Optional[IparameterRead]]] = Field(alias="parameters", default=None) + + options: Optional[List[Optional[IproductOptionRead]]] = Field(alias="options", default=None) + + wholesale_options: Optional[List[Optional[IwholesaleOptionRead]]] = Field(alias="wholesale_options", default=None) + + compositions: Optional[List[Optional[IcompositionRead]]] = Field(alias="compositions", default=None) + + colors: Optional[List[Optional[IcolorRead]]] = Field(alias="colors", default=None) + + status: ProductStatusEnum = Field(alias="status") + + post_url: str = Field(alias="post_url") diff --git a/tests/test_data/test_api/models/IresponsePaginatedIproductRead.py b/tests/test_data/test_api/models/IresponsePaginatedIproductRead.py new file mode 100644 index 0000000..e7ba166 --- /dev/null +++ b/tests/test_data/test_api/models/IresponsePaginatedIproductRead.py @@ -0,0 +1,23 @@ +from typing import * + +from pydantic import BaseModel, Field + +from .InextCursor import InextCursor +from .IproductRead import IproductRead + + +class IresponsePaginatedIproductRead(BaseModel): + """ + IResponsePaginated[IProductRead] model + + """ + + items: List[IproductRead] = Field(alias="items") + + total: Union[int, None] = Field(alias="total") + + limit: Union[int, None] = Field(alias="limit") + + offset: Union[int, None] = Field(alias="offset") + + next: Optional[Union[InextCursor, None]] = Field(alias="next", default=None) diff --git a/tests/test_data/test_api/models/IwholesaleOptionRead.py b/tests/test_data/test_api/models/IwholesaleOptionRead.py new file mode 100644 index 0000000..c8085f1 --- /dev/null +++ b/tests/test_data/test_api/models/IwholesaleOptionRead.py @@ -0,0 +1,16 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class IwholesaleOptionRead(BaseModel): + """ + IWholesaleOptionRead model + + """ + + name: str = Field(alias="name") + + count: int = Field(alias="count") + + price: Optional[str] = Field(alias="price", default=None) diff --git a/tests/test_data/test_api/models/ListOrderEnum.py b/tests/test_data/test_api/models/ListOrderEnum.py new file mode 100644 index 0000000..83f3402 --- /dev/null +++ b/tests/test_data/test_api/models/ListOrderEnum.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class ListOrderEnum(str, Enum): + + ASCENDENT = "ascendent" + DESCENDENT = "descendent" diff --git a/tests/test_data/test_api/models/ProductStatusEnum.py b/tests/test_data/test_api/models/ProductStatusEnum.py new file mode 100644 index 0000000..17d024a --- /dev/null +++ b/tests/test_data/test_api/models/ProductStatusEnum.py @@ -0,0 +1,8 @@ +from enum import Enum + + +class ProductStatusEnum(str, Enum): + + NEW = "new" + ERROR = "error" + COMPLETED = "completed" diff --git a/tests/test_data/test_api/models/ValidationError.py b/tests/test_data/test_api/models/ValidationError.py new file mode 100644 index 0000000..6164983 --- /dev/null +++ b/tests/test_data/test_api/models/ValidationError.py @@ -0,0 +1,16 @@ +from typing import * + +from pydantic import BaseModel, Field + + +class ValidationError(BaseModel): + """ + ValidationError model + + """ + + loc: List[Union[str, int]] = Field(alias="loc") + + msg: str = Field(alias="msg") + + type: str = Field(alias="type") diff --git a/tests/test_data/test_api/models/__init__.py b/tests/test_data/test_api/models/__init__.py new file mode 100644 index 0000000..f5443f1 --- /dev/null +++ b/tests/test_data/test_api/models/__init__.py @@ -0,0 +1,16 @@ +from .ApiV1ProductsListPostResponse import * +from .ApiV1ProductsSearchByImagePostResponse import * +from .BodyProductGetList import * +from .BodyProductSearchByImage import * +from .HtTPValidationError import * +from .IcolorRead import * +from .IcompositionRead import * +from .InextCursor import * +from .IparameterRead import * +from .IproductOptionRead import * +from .IproductRead import * +from .IresponsePaginatedIproductRead import * +from .IwholesaleOptionRead import * +from .ListOrderEnum import * +from .ProductStatusEnum import * +from .ValidationError import * diff --git a/tests/test_data/test_api/services/__init__.py b/tests/test_data/test_api/services/__init__.py new file mode 100644 index 0000000..166f184 --- /dev/null +++ b/tests/test_data/test_api/services/__init__.py @@ -0,0 +1 @@ +from .async_products_service import * diff --git a/tests/test_data/test_api/services/async_products_service.py b/tests/test_data/test_api/services/async_products_service.py new file mode 100644 index 0000000..4a30875 --- /dev/null +++ b/tests/test_data/test_api/services/async_products_service.py @@ -0,0 +1,149 @@ +import json +from typing import * + +import aiohttp + +from ..api_config import APIConfig, HTTPException +from ..models import * + + +async def product_get_list( + data: BodyProductGetList, + search_text: Optional[Union[str, None]] = None, + order_by: Optional[str] = None, + order: Optional[ListOrderEnum] = None, + limit: Optional[int] = None, + offset: Optional[int] = None, + api_config_override: Optional[APIConfig] = None, +) -> IresponsePaginatedIproductRead: + api_config = api_config_override if api_config_override else APIConfig() + + base_path = api_config.base_path + path = f"/api/v1/products" + headers = { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": f"Bearer { api_config.get_access_token() }", + } + + query_params: Dict[str, Any] = { + "search_text": search_text, + "order_by": order_by, + "order": order, + "limit": limit, + "offset": offset, + } + + query_params = {key: value for (key, value) in query_params.items() if value is not None} + + async with aiohttp.ClientSession(headers=headers) as session: + async with session.request("post", base_path + path, params=query_params, json=data.dict()) as inital_response: + try: + response = await inital_response.json() + except aiohttp.ContentTypeError: + response_text = await inital_response.text() + raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") + if inital_response.status != 200: + raise HTTPException(inital_response.status, f"{ response }") + + return ( + IresponsePaginatedIproductRead(**response) if response is not None else IresponsePaginatedIproductRead() + ) + + +async def product_get_list_by_ids( + data: List[str], api_config_override: Optional[APIConfig] = None +) -> List[IproductRead]: + api_config = api_config_override if api_config_override else APIConfig() + + base_path = api_config.base_path + path = f"/api/v1/products/list" + headers = { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": f"Bearer { api_config.get_access_token() }", + } + + query_params: Dict[str, Any] = {} + + query_params = {key: value for (key, value) in query_params.items() if value is not None} + + async with aiohttp.ClientSession(headers=headers) as session: + async with session.request( + "post", base_path + path, params=query_params, json=[i.dict() for i in data] + ) as inital_response: + try: + response = await inital_response.json() + except aiohttp.ContentTypeError: + response_text = await inital_response.text() + raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") + if inital_response.status != 200: + raise HTTPException(inital_response.status, f"{ response }") + + return [IproductRead(**item) for item in response] + + +async def product_get_by_id(id: str, api_config_override: Optional[APIConfig] = None) -> IproductRead: + api_config = api_config_override if api_config_override else APIConfig() + + base_path = api_config.base_path + path = f"/api/v1/products/{id}" + headers = { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": f"Bearer { api_config.get_access_token() }", + } + + query_params: Dict[str, Any] = {} + + query_params = {key: value for (key, value) in query_params.items() if value is not None} + + async with aiohttp.ClientSession(headers=headers) as session: + async with session.request( + "get", + base_path + path, + params=query_params, + ) as inital_response: + try: + response = await inital_response.json() + except aiohttp.ContentTypeError: + response_text = await inital_response.text() + raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") + if inital_response.status != 200: + raise HTTPException(inital_response.status, f"{ response }") + + return IproductRead(**response) if response is not None else IproductRead() + + +async def product_search_by_image( + data: BodyProductSearchByImage, api_config_override: Optional[APIConfig] = None +) -> List[IproductRead]: + api_config = api_config_override if api_config_override else APIConfig() + + base_path = api_config.base_path + path = f"/api/v1/products/search-by-image" + headers = { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": f"Bearer { api_config.get_access_token() }", + } + + query_params: Dict[str, Any] = {} + + query_params = {key: value for (key, value) in query_params.items() if value is not None} + + async with aiohttp.ClientSession(headers=headers) as session: + async with session.request( + "post", + base_path + path, + params=query_params, + ) as inital_response: + try: + response = await inital_response.json() + except aiohttp.ContentTypeError: + response_text = await inital_response.text() + raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") + if inital_response.status != 200: + raise HTTPException(inital_response.status, f"{ response }") + + return [IproductRead(**item) for item in response] From fc951afff37eda558fccd096520cd8aede223cc8 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 4 Aug 2024 15:19:49 +0400 Subject: [PATCH 17/28] fix --- .vscode/settings.json | 10 ++++++++-- src/openapi_python_generator/generate_data.py | 6 ++++-- .../language_converters/python/model_generator.py | 4 ++-- .../language_converters/python/utils.py | 12 ++++++++---- src/openapi_python_generator/models.py | 10 +++++++++- .../test_api/models/BodyProductSearchByImage.py | 2 +- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a6735e5..28e62ce 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,9 @@ { - "python.analysis.typeCheckingMode": "off" -} \ No newline at end of file + "python.analysis.typeCheckingMode": "off", + "python.analysis.packageIndexDepths": [ + { + "name": "case-converter", + "depth": 4 + } + ] +} diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index ccc98de..0ba8775 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -8,7 +8,7 @@ import isort import orjson import yaml -from black import NothingChanged +from black import NothingChanged, InvalidInput from httpx import ConnectError from httpx import ConnectTimeout from pydantic import ValidationError @@ -36,9 +36,11 @@ def write_code(path: Path, content) -> None: formatted_contend = black.format_file_contents( content, fast=False, mode=black.FileMode(line_length=120) ) - except NothingChanged: formatted_contend = content + except InvalidInput as e: + print(f"[Skipping formatting] InvalidInput file: {path}") + formatted_contend = content formatted_contend = isort.code(formatted_contend, line_length=120) f.write(formatted_contend) except Exception as e: diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 81f84cf..40cd3b1 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -1,7 +1,7 @@ import re import traceback from typing import Dict, List -from caseconverter import pascalcase +from caseconverter import pascalcase, snakecase import click @@ -148,7 +148,7 @@ def generate_models( if isinstance(media_type.media_type_schema, Reference): ref_name = media_type.media_type_schema.ref.split("/")[-1] - ref_model_name = pascalcase(ref_name) + ref_model_name = snakecase(ref_name) models.append( Model( file_name=name, diff --git a/src/openapi_python_generator/language_converters/python/utils.py b/src/openapi_python_generator/language_converters/python/utils.py index 11b795b..87ab292 100644 --- a/src/openapi_python_generator/language_converters/python/utils.py +++ b/src/openapi_python_generator/language_converters/python/utils.py @@ -1,6 +1,6 @@ import itertools from typing import List, Optional -from caseconverter import pascalcase +from caseconverter import pascalcase, snakecase import openapi_python_generator @@ -57,7 +57,7 @@ def _generate_property_from_reference( converted_type=( import_model if required else "Optional[" + import_model + "]" ), - import_types=[f"from .{import_model} import {import_model}"], + import_types=[f"from .{snakecase(import_model)} import {import_model}"], ) return Property( name=name, @@ -149,7 +149,9 @@ def type_converter( # noqa: C901 ) ) else: - import_types = [f"from .{import_type} import {import_type}"] + import_types = [ + f"from .{snakecase(import_type)} import {import_type}" + ] conversions.append( TypeConversion( original_type=sub_schema.ref, @@ -182,7 +184,7 @@ def type_converter( # noqa: C901 conversions.append(type_converter(sub_schema, True)) else: import_type = pascalcase(sub_schema.ref.split("/")[-1]) - import_types = [f"from .{import_type} import {import_type}"] + import_types = [f"from .{snakecase(import_type)} import {import_type}"] conversions.append( TypeConversion( original_type=sub_schema.ref, @@ -210,6 +212,8 @@ def type_converter( # noqa: C901 ) # We only want to auto convert to datetime if orjson is used throghout the code, otherwise we can not # serialize it to JSON. + elif schema.type == "string" and schema.schema_format == "binary": + converted_type = pre_type + "bytes" + post_type elif schema.type == "string" and ( schema.schema_format is None or not common.get_use_orjson() ): diff --git a/src/openapi_python_generator/models.py b/src/openapi_python_generator/models.py index 056765d..ea3f4ae 100644 --- a/src/openapi_python_generator/models.py +++ b/src/openapi_python_generator/models.py @@ -1,7 +1,8 @@ from typing import List from typing import Optional +from caseconverter import snakecase -from pydantic import BaseModel +from pydantic import BaseModel, field_validator import openapi_python_generator @@ -59,6 +60,13 @@ class Model(BaseModel): openapi_object: Schema properties: List[Property] = [] + @field_validator("file_name") + def validate_file_name(cls, value): + value = snakecase(value) + if value == "pass": + value += "_" + return value + class Service(BaseModel): file_name: str diff --git a/tests/test_data/test_api/models/BodyProductSearchByImage.py b/tests/test_data/test_api/models/BodyProductSearchByImage.py index 2064bb1..686b037 100644 --- a/tests/test_data/test_api/models/BodyProductSearchByImage.py +++ b/tests/test_data/test_api/models/BodyProductSearchByImage.py @@ -9,4 +9,4 @@ class BodyProductSearchByImage(BaseModel): """ - image: str = Field(alias="image") + image: bytes = Field(alias="image") From 43712d9c6ec85b7ba2c38ba56d1ebab3388bb15b Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 5 Aug 2024 12:35:28 +0400 Subject: [PATCH 18/28] fix --- .vscode/launch.json | 7 +------ .../language_converters/python/model_generator.py | 2 +- .../language_converters/python/utils.py | 10 +++++++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index e1e345f..e41fb92 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,12 +9,7 @@ "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/src/openapi_python_generator", - "args": [ - "--library", - "aiohttp", - "http://localhost:8000/openapi.json", - "test_api" - ], + "args": ["--library", "aiohttp", "./openapi.yaml", "test_api"], "cwd": "${workspaceFolder}/tests/test_data" } ] diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 40cd3b1..c6ce3b8 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -152,7 +152,7 @@ def generate_models( models.append( Model( file_name=name, - content=f"from .{ref_model_name} import {ref_model_name}\n\nclass {name}({ref_model_name}):\n pass", + content=f"from .{ref_model_name} import {ref_name}\n\nclass {name}({ref_name}):\n pass", openapi_object=Schema(), properties=[], ) diff --git a/src/openapi_python_generator/language_converters/python/utils.py b/src/openapi_python_generator/language_converters/python/utils.py index 87ab292..a5973e8 100644 --- a/src/openapi_python_generator/language_converters/python/utils.py +++ b/src/openapi_python_generator/language_converters/python/utils.py @@ -57,7 +57,9 @@ def _generate_property_from_reference( converted_type=( import_model if required else "Optional[" + import_model + "]" ), - import_types=[f"from .{snakecase(import_model)} import {import_model}"], + import_types=[ + f"from .{snakecase(import_model)} import {pascalcase(import_model)}" + ], ) return Property( name=name, @@ -150,7 +152,7 @@ def type_converter( # noqa: C901 ) else: import_types = [ - f"from .{snakecase(import_type)} import {import_type}" + f"from .{snakecase(import_type)} import {pascalcase(import_type)}" ] conversions.append( TypeConversion( @@ -184,7 +186,9 @@ def type_converter( # noqa: C901 conversions.append(type_converter(sub_schema, True)) else: import_type = pascalcase(sub_schema.ref.split("/")[-1]) - import_types = [f"from .{snakecase(import_type)} import {import_type}"] + import_types = [ + f"from .{snakecase(import_type)} import {pascalcase(import_type)}" + ] conversions.append( TypeConversion( original_type=sub_schema.ref, From d847179045be22b69bf06da63f4da49238989201 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 18 Aug 2024 16:16:47 +0400 Subject: [PATCH 19/28] fix generator base type --- .../python/model_generator.py | 12 +- .../python/templates/models.jinja2 | 2 +- tests/test_data/test_api/__init__.py | 3 - tests/test_data/test_api/api_config.py | 25 --- .../models/ApiV1ProductsListPostResponse.py | 10 -- .../ApiV1ProductsSearchByImagePostResponse.py | 10 -- .../test_api/models/BodyProductGetList.py | 18 --- .../models/BodyProductSearchByImage.py | 12 -- .../test_api/models/HtTPValidationError.py | 14 -- tests/test_data/test_api/models/IcolorRead.py | 12 -- .../test_api/models/IcompositionRead.py | 12 -- .../test_data/test_api/models/InextCursor.py | 14 -- .../test_api/models/IparameterRead.py | 14 -- .../test_api/models/IproductOptionRead.py | 14 -- .../test_data/test_api/models/IproductRead.py | 41 ----- .../models/IresponsePaginatedIproductRead.py | 23 --- .../test_api/models/IwholesaleOptionRead.py | 16 -- .../test_api/models/ListOrderEnum.py | 7 - .../test_api/models/ProductStatusEnum.py | 8 - .../test_api/models/ValidationError.py | 16 -- tests/test_data/test_api/models/__init__.py | 16 -- tests/test_data/test_api/services/__init__.py | 1 - .../services/async_products_service.py | 149 ------------------ 23 files changed, 12 insertions(+), 437 deletions(-) delete mode 100644 tests/test_data/test_api/__init__.py delete mode 100644 tests/test_data/test_api/api_config.py delete mode 100644 tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py delete mode 100644 tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py delete mode 100644 tests/test_data/test_api/models/BodyProductGetList.py delete mode 100644 tests/test_data/test_api/models/BodyProductSearchByImage.py delete mode 100644 tests/test_data/test_api/models/HtTPValidationError.py delete mode 100644 tests/test_data/test_api/models/IcolorRead.py delete mode 100644 tests/test_data/test_api/models/IcompositionRead.py delete mode 100644 tests/test_data/test_api/models/InextCursor.py delete mode 100644 tests/test_data/test_api/models/IparameterRead.py delete mode 100644 tests/test_data/test_api/models/IproductOptionRead.py delete mode 100644 tests/test_data/test_api/models/IproductRead.py delete mode 100644 tests/test_data/test_api/models/IresponsePaginatedIproductRead.py delete mode 100644 tests/test_data/test_api/models/IwholesaleOptionRead.py delete mode 100644 tests/test_data/test_api/models/ListOrderEnum.py delete mode 100644 tests/test_data/test_api/models/ProductStatusEnum.py delete mode 100644 tests/test_data/test_api/models/ValidationError.py delete mode 100644 tests/test_data/test_api/models/__init__.py delete mode 100644 tests/test_data/test_api/services/__init__.py delete mode 100644 tests/test_data/test_api/services/async_products_service.py diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index c6ce3b8..0f5a0a9 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -4,6 +4,7 @@ from caseconverter import pascalcase, snakecase import click +from openapi_pydantic import DataType import openapi_python_generator from openapi_python_generator.language_converters.python.service_generator import ( @@ -12,6 +13,7 @@ from openapi_python_generator.language_converters.python.utils import ( _generate_property_from_reference, _generate_property_from_schema, + type_converter, ) if openapi_python_generator.OPENAPI_VERSION is None: @@ -106,8 +108,16 @@ def generate_models( ) properties.append(conv_property) + base_class = None + if not properties and isinstance(schema_or_reference, Schema): + type_conv = type_converter(schema_or_reference, required=True) + base_class = type_conv.converted_type + generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( - schema_name=name, schema=schema_or_reference, properties=properties + schema_name=name, + schema=schema_or_reference, + properties=properties, + base_class=base_class, ) try: diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index e2a90aa..6f5b6a5 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -8,7 +8,7 @@ from pydantic import BaseModel, Field {% endif %} {% endfor %} -class {{ schema_name }}(BaseModel): +class {{ schema_name }}({{ base_class or 'BaseModel' }}): """ {{ schema.title }} model {% if schema.description != None %} diff --git a/tests/test_data/test_api/__init__.py b/tests/test_data/test_api/__init__.py deleted file mode 100644 index 7ea1f7d..0000000 --- a/tests/test_data/test_api/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .api_config import * -from .models import * -from .services import * diff --git a/tests/test_data/test_api/api_config.py b/tests/test_data/test_api/api_config.py deleted file mode 100644 index fd456a8..0000000 --- a/tests/test_data/test_api/api_config.py +++ /dev/null @@ -1,25 +0,0 @@ -from typing import Optional, Union - -from pydantic import BaseModel, Field - - -class APIConfig(BaseModel): - base_path: str = "" - verify: Union[bool, str] = True - access_token: Optional[str] = None - - def get_access_token(self) -> Optional[str]: - return self.access_token - - def set_access_token(self, value: str): - self.access_token = value - - -class HTTPException(Exception): - def __init__(self, status_code: int, message: str): - self.status_code = status_code - self.message = message - super().__init__(f"{status_code} {message}") - - def __str__(self): - return f"{self.status_code} {self.message}" diff --git a/tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py b/tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py deleted file mode 100644 index fed37d0..0000000 --- a/tests/test_data/test_api/models/ApiV1ProductsListPostResponse.py +++ /dev/null @@ -1,10 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class ApiV1ProductsListPostResponse(BaseModel): - """ - Response Product Get List By Ids model - - """ diff --git a/tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py b/tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py deleted file mode 100644 index cc8bd7e..0000000 --- a/tests/test_data/test_api/models/ApiV1ProductsSearchByImagePostResponse.py +++ /dev/null @@ -1,10 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class ApiV1ProductsSearchByImagePostResponse(BaseModel): - """ - Response Product Search By Image model - - """ diff --git a/tests/test_data/test_api/models/BodyProductGetList.py b/tests/test_data/test_api/models/BodyProductGetList.py deleted file mode 100644 index 85ccc61..0000000 --- a/tests/test_data/test_api/models/BodyProductGetList.py +++ /dev/null @@ -1,18 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class BodyProductGetList(BaseModel): - """ - Body_product_get_list model - - """ - - compositions: Optional[List[str]] = Field(alias="compositions", default=None) - - colors: Optional[List[str]] = Field(alias="colors", default=None) - - options: Optional[List[str]] = Field(alias="options", default=None) - - seller: Optional[Union[str, None]] = Field(alias="seller", default=None) diff --git a/tests/test_data/test_api/models/BodyProductSearchByImage.py b/tests/test_data/test_api/models/BodyProductSearchByImage.py deleted file mode 100644 index 686b037..0000000 --- a/tests/test_data/test_api/models/BodyProductSearchByImage.py +++ /dev/null @@ -1,12 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class BodyProductSearchByImage(BaseModel): - """ - Body_product_search_by_image model - - """ - - image: bytes = Field(alias="image") diff --git a/tests/test_data/test_api/models/HtTPValidationError.py b/tests/test_data/test_api/models/HtTPValidationError.py deleted file mode 100644 index 25af8e3..0000000 --- a/tests/test_data/test_api/models/HtTPValidationError.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - -from .ValidationError import ValidationError - - -class HtTPValidationError(BaseModel): - """ - HTTPValidationError model - - """ - - detail: Optional[List[Optional[ValidationError]]] = Field(alias="detail", default=None) diff --git a/tests/test_data/test_api/models/IcolorRead.py b/tests/test_data/test_api/models/IcolorRead.py deleted file mode 100644 index 9ff81dd..0000000 --- a/tests/test_data/test_api/models/IcolorRead.py +++ /dev/null @@ -1,12 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class IcolorRead(BaseModel): - """ - IColorRead model - - """ - - name: str = Field(alias="name") diff --git a/tests/test_data/test_api/models/IcompositionRead.py b/tests/test_data/test_api/models/IcompositionRead.py deleted file mode 100644 index 2e6b02c..0000000 --- a/tests/test_data/test_api/models/IcompositionRead.py +++ /dev/null @@ -1,12 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class IcompositionRead(BaseModel): - """ - ICompositionRead model - - """ - - name: str = Field(alias="name") diff --git a/tests/test_data/test_api/models/InextCursor.py b/tests/test_data/test_api/models/InextCursor.py deleted file mode 100644 index 7f892fa..0000000 --- a/tests/test_data/test_api/models/InextCursor.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class InextCursor(BaseModel): - """ - INextCursor model - - """ - - offset: int = Field(alias="offset") - - limit: int = Field(alias="limit") diff --git a/tests/test_data/test_api/models/IparameterRead.py b/tests/test_data/test_api/models/IparameterRead.py deleted file mode 100644 index 68178a2..0000000 --- a/tests/test_data/test_api/models/IparameterRead.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class IparameterRead(BaseModel): - """ - IParameterRead model - - """ - - name: str = Field(alias="name") - - values: Optional[List[str]] = Field(alias="values", default=None) diff --git a/tests/test_data/test_api/models/IproductOptionRead.py b/tests/test_data/test_api/models/IproductOptionRead.py deleted file mode 100644 index 3a7151a..0000000 --- a/tests/test_data/test_api/models/IproductOptionRead.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class IproductOptionRead(BaseModel): - """ - IProductOptionRead model - - """ - - price: Optional[str] = Field(alias="price", default=None) - - name: str = Field(alias="name") diff --git a/tests/test_data/test_api/models/IproductRead.py b/tests/test_data/test_api/models/IproductRead.py deleted file mode 100644 index 5c2e528..0000000 --- a/tests/test_data/test_api/models/IproductRead.py +++ /dev/null @@ -1,41 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - -from .IcolorRead import IcolorRead -from .IcompositionRead import IcompositionRead -from .IparameterRead import IparameterRead -from .IproductOptionRead import IproductOptionRead -from .IwholesaleOptionRead import IwholesaleOptionRead -from .ProductStatusEnum import ProductStatusEnum - - -class IproductRead(BaseModel): - """ - IProductRead model - - """ - - name: Optional[str] = Field(alias="name", default=None) - - description: Optional[str] = Field(alias="description", default=None) - - images: Optional[List[str]] = Field(alias="images", default=None) - - thumbnail_images: Optional[List[str]] = Field(alias="thumbnail_images", default=None) - - id: str = Field(alias="id") - - parameters: Optional[List[Optional[IparameterRead]]] = Field(alias="parameters", default=None) - - options: Optional[List[Optional[IproductOptionRead]]] = Field(alias="options", default=None) - - wholesale_options: Optional[List[Optional[IwholesaleOptionRead]]] = Field(alias="wholesale_options", default=None) - - compositions: Optional[List[Optional[IcompositionRead]]] = Field(alias="compositions", default=None) - - colors: Optional[List[Optional[IcolorRead]]] = Field(alias="colors", default=None) - - status: ProductStatusEnum = Field(alias="status") - - post_url: str = Field(alias="post_url") diff --git a/tests/test_data/test_api/models/IresponsePaginatedIproductRead.py b/tests/test_data/test_api/models/IresponsePaginatedIproductRead.py deleted file mode 100644 index e7ba166..0000000 --- a/tests/test_data/test_api/models/IresponsePaginatedIproductRead.py +++ /dev/null @@ -1,23 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - -from .InextCursor import InextCursor -from .IproductRead import IproductRead - - -class IresponsePaginatedIproductRead(BaseModel): - """ - IResponsePaginated[IProductRead] model - - """ - - items: List[IproductRead] = Field(alias="items") - - total: Union[int, None] = Field(alias="total") - - limit: Union[int, None] = Field(alias="limit") - - offset: Union[int, None] = Field(alias="offset") - - next: Optional[Union[InextCursor, None]] = Field(alias="next", default=None) diff --git a/tests/test_data/test_api/models/IwholesaleOptionRead.py b/tests/test_data/test_api/models/IwholesaleOptionRead.py deleted file mode 100644 index c8085f1..0000000 --- a/tests/test_data/test_api/models/IwholesaleOptionRead.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class IwholesaleOptionRead(BaseModel): - """ - IWholesaleOptionRead model - - """ - - name: str = Field(alias="name") - - count: int = Field(alias="count") - - price: Optional[str] = Field(alias="price", default=None) diff --git a/tests/test_data/test_api/models/ListOrderEnum.py b/tests/test_data/test_api/models/ListOrderEnum.py deleted file mode 100644 index 83f3402..0000000 --- a/tests/test_data/test_api/models/ListOrderEnum.py +++ /dev/null @@ -1,7 +0,0 @@ -from enum import Enum - - -class ListOrderEnum(str, Enum): - - ASCENDENT = "ascendent" - DESCENDENT = "descendent" diff --git a/tests/test_data/test_api/models/ProductStatusEnum.py b/tests/test_data/test_api/models/ProductStatusEnum.py deleted file mode 100644 index 17d024a..0000000 --- a/tests/test_data/test_api/models/ProductStatusEnum.py +++ /dev/null @@ -1,8 +0,0 @@ -from enum import Enum - - -class ProductStatusEnum(str, Enum): - - NEW = "new" - ERROR = "error" - COMPLETED = "completed" diff --git a/tests/test_data/test_api/models/ValidationError.py b/tests/test_data/test_api/models/ValidationError.py deleted file mode 100644 index 6164983..0000000 --- a/tests/test_data/test_api/models/ValidationError.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import * - -from pydantic import BaseModel, Field - - -class ValidationError(BaseModel): - """ - ValidationError model - - """ - - loc: List[Union[str, int]] = Field(alias="loc") - - msg: str = Field(alias="msg") - - type: str = Field(alias="type") diff --git a/tests/test_data/test_api/models/__init__.py b/tests/test_data/test_api/models/__init__.py deleted file mode 100644 index f5443f1..0000000 --- a/tests/test_data/test_api/models/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .ApiV1ProductsListPostResponse import * -from .ApiV1ProductsSearchByImagePostResponse import * -from .BodyProductGetList import * -from .BodyProductSearchByImage import * -from .HtTPValidationError import * -from .IcolorRead import * -from .IcompositionRead import * -from .InextCursor import * -from .IparameterRead import * -from .IproductOptionRead import * -from .IproductRead import * -from .IresponsePaginatedIproductRead import * -from .IwholesaleOptionRead import * -from .ListOrderEnum import * -from .ProductStatusEnum import * -from .ValidationError import * diff --git a/tests/test_data/test_api/services/__init__.py b/tests/test_data/test_api/services/__init__.py deleted file mode 100644 index 166f184..0000000 --- a/tests/test_data/test_api/services/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .async_products_service import * diff --git a/tests/test_data/test_api/services/async_products_service.py b/tests/test_data/test_api/services/async_products_service.py deleted file mode 100644 index 4a30875..0000000 --- a/tests/test_data/test_api/services/async_products_service.py +++ /dev/null @@ -1,149 +0,0 @@ -import json -from typing import * - -import aiohttp - -from ..api_config import APIConfig, HTTPException -from ..models import * - - -async def product_get_list( - data: BodyProductGetList, - search_text: Optional[Union[str, None]] = None, - order_by: Optional[str] = None, - order: Optional[ListOrderEnum] = None, - limit: Optional[int] = None, - offset: Optional[int] = None, - api_config_override: Optional[APIConfig] = None, -) -> IresponsePaginatedIproductRead: - api_config = api_config_override if api_config_override else APIConfig() - - base_path = api_config.base_path - path = f"/api/v1/products" - headers = { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": f"Bearer { api_config.get_access_token() }", - } - - query_params: Dict[str, Any] = { - "search_text": search_text, - "order_by": order_by, - "order": order, - "limit": limit, - "offset": offset, - } - - query_params = {key: value for (key, value) in query_params.items() if value is not None} - - async with aiohttp.ClientSession(headers=headers) as session: - async with session.request("post", base_path + path, params=query_params, json=data.dict()) as inital_response: - try: - response = await inital_response.json() - except aiohttp.ContentTypeError: - response_text = await inital_response.text() - raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") - if inital_response.status != 200: - raise HTTPException(inital_response.status, f"{ response }") - - return ( - IresponsePaginatedIproductRead(**response) if response is not None else IresponsePaginatedIproductRead() - ) - - -async def product_get_list_by_ids( - data: List[str], api_config_override: Optional[APIConfig] = None -) -> List[IproductRead]: - api_config = api_config_override if api_config_override else APIConfig() - - base_path = api_config.base_path - path = f"/api/v1/products/list" - headers = { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": f"Bearer { api_config.get_access_token() }", - } - - query_params: Dict[str, Any] = {} - - query_params = {key: value for (key, value) in query_params.items() if value is not None} - - async with aiohttp.ClientSession(headers=headers) as session: - async with session.request( - "post", base_path + path, params=query_params, json=[i.dict() for i in data] - ) as inital_response: - try: - response = await inital_response.json() - except aiohttp.ContentTypeError: - response_text = await inital_response.text() - raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") - if inital_response.status != 200: - raise HTTPException(inital_response.status, f"{ response }") - - return [IproductRead(**item) for item in response] - - -async def product_get_by_id(id: str, api_config_override: Optional[APIConfig] = None) -> IproductRead: - api_config = api_config_override if api_config_override else APIConfig() - - base_path = api_config.base_path - path = f"/api/v1/products/{id}" - headers = { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": f"Bearer { api_config.get_access_token() }", - } - - query_params: Dict[str, Any] = {} - - query_params = {key: value for (key, value) in query_params.items() if value is not None} - - async with aiohttp.ClientSession(headers=headers) as session: - async with session.request( - "get", - base_path + path, - params=query_params, - ) as inital_response: - try: - response = await inital_response.json() - except aiohttp.ContentTypeError: - response_text = await inital_response.text() - raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") - if inital_response.status != 200: - raise HTTPException(inital_response.status, f"{ response }") - - return IproductRead(**response) if response is not None else IproductRead() - - -async def product_search_by_image( - data: BodyProductSearchByImage, api_config_override: Optional[APIConfig] = None -) -> List[IproductRead]: - api_config = api_config_override if api_config_override else APIConfig() - - base_path = api_config.base_path - path = f"/api/v1/products/search-by-image" - headers = { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": f"Bearer { api_config.get_access_token() }", - } - - query_params: Dict[str, Any] = {} - - query_params = {key: value for (key, value) in query_params.items() if value is not None} - - async with aiohttp.ClientSession(headers=headers) as session: - async with session.request( - "post", - base_path + path, - params=query_params, - ) as inital_response: - try: - response = await inital_response.json() - except aiohttp.ContentTypeError: - response_text = await inital_response.text() - raise HTTPException(inital_response.status, f"Invalid response from server: { response_text}") - if inital_response.status != 200: - raise HTTPException(inital_response.status, f"{ response }") - - return [IproductRead(**item) for item in response] From 05922083c4481572c30e889ba7610c2b933d257a Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 18 Aug 2024 16:31:34 +0400 Subject: [PATCH 20/28] fix --- .../language_converters/python/model_generator.py | 3 +++ .../language_converters/python/templates/models.jinja2 | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 0f5a0a9..2d1edc8 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -109,15 +109,18 @@ def generate_models( properties.append(conv_property) base_class = None + import_types = None if not properties and isinstance(schema_or_reference, Schema): type_conv = type_converter(schema_or_reference, required=True) base_class = type_conv.converted_type + import_types = type_conv.import_types generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( schema_name=name, schema=schema_or_reference, properties=properties, base_class=base_class, + import_types=import_types, ) try: diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index 6f5b6a5..c4f8e6f 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -1,12 +1,17 @@ from typing import * from pydantic import BaseModel, Field -{% for property in properties %} +{% for property in properties %} {% if property.type.import_types is not none %} {% for import_type in property.type.import_types %} {{ import_type }} {% endfor %} {% endif %} {% endfor %} +{% if import_types is not none %} +{% for import_type in import_types %} +{{ import_type }} +{% endfor %} +{% endif %} class {{ schema_name }}({{ base_class or 'BaseModel' }}): """ From 8bafc709b15d6ac08c2cd74cad3c110b51a9dc5d Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 18 Aug 2024 17:41:23 +0400 Subject: [PATCH 21/28] fix --- .../language_converters/python/model_generator.py | 6 +++--- .../python/templates/models.jinja2 | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 2d1edc8..3d89e60 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -108,18 +108,18 @@ def generate_models( ) properties.append(conv_property) - base_class = None + root_type = None import_types = None if not properties and isinstance(schema_or_reference, Schema): type_conv = type_converter(schema_or_reference, required=True) - base_class = type_conv.converted_type + root_type = type_conv.converted_type import_types = type_conv.import_types generated_content = jinja_env.get_template(MODELS_TEMPLATE).render( schema_name=name, schema=schema_or_reference, properties=properties, - base_class=base_class, + root_type=root_type, import_types=import_types, ) diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index c4f8e6f..522bdee 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -1,5 +1,5 @@ from typing import * -from pydantic import BaseModel, Field +from pydantic import BaseModel, RootModel, Field {% for property in properties %} {% if property.type.import_types is not none %} {% for import_type in property.type.import_types %} @@ -13,14 +13,19 @@ from pydantic import BaseModel, Field {% endfor %} {% endif %} -class {{ schema_name }}({{ base_class or 'BaseModel' }}): +class {{ schema_name }}({{ 'BaseModel' if not root_type else 'RootModel' }}): """ {{ schema.title }} model {% if schema.description != None %} + {{ schema.description }} {% endif %} - """ + {% if root_type %} + + root : {{ root_type }} + {% endif %} + {% for property in properties %} {{ property.name | replace("@","") | replace("-","_") }} : {{ property.type.converted_type | safe }} = Field(alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %}) From 644af4a900d34d5aed3163a68769ef0bab3cd053 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 18 Aug 2024 17:47:53 +0400 Subject: [PATCH 22/28] fix root type --- .../python/templates/models.jinja2 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index 522bdee..88acb48 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -13,7 +13,13 @@ from pydantic import BaseModel, RootModel, Field {% endfor %} {% endif %} -class {{ schema_name }}({{ 'BaseModel' if not root_type else 'RootModel' }}): +{% if root_type %} + +{{ schema_name }} = Annotated[{{ root_type }}] + +{% else %} + +class {{ schema_name }}(BaseModel): """ {{ schema.title }} model {% if schema.description != None %} @@ -21,12 +27,10 @@ class {{ schema_name }}({{ 'BaseModel' if not root_type else 'RootModel' }}): {{ schema.description }} {% endif %} """ - {% if root_type %} - - root : {{ root_type }} - {% endif %} {% for property in properties %} {{ property.name | replace("@","") | replace("-","_") }} : {{ property.type.converted_type | safe }} = Field(alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %}) {% endfor %} + +{% endif %} From f8260cfa1b65df4df4530369935c04ad7eee2cae Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 18 Aug 2024 17:48:44 +0400 Subject: [PATCH 23/28] fix root type --- .../language_converters/python/templates/models.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index 88acb48..00baa77 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -15,7 +15,7 @@ from pydantic import BaseModel, RootModel, Field {% if root_type %} -{{ schema_name }} = Annotated[{{ root_type }}] +{{ schema_name }} = {{ root_type }} {% else %} From 46410eb5c0685b64d6f4f9229d22f912d89ea933 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Sun, 18 Aug 2024 17:49:34 +0400 Subject: [PATCH 24/28] fix --- .../language_converters/python/templates/models.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index 00baa77..d19b29d 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -1,5 +1,5 @@ from typing import * -from pydantic import BaseModel, RootModel, Field +from pydantic import BaseModel, Field {% for property in properties %} {% if property.type.import_types is not none %} {% for import_type in property.type.import_types %} From 0ba729c1a432df775fcf602da30cb6cf43fc0196 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 4 Aug 2025 15:59:18 +0400 Subject: [PATCH 25/28] Refactor code structure for improved readability and maintainability --- poetry.lock | 492 +- pyproject.toml | 2 +- src/openapi_python_generator/generate_data.py | 4 +- .../language_converters/python/generator.py | 4 +- .../python/model_generator.py | 28 +- .../python/service_generator.py | 46 +- .../python/templates/aiohttp.jinja2 | 2 +- .../language_converters/python/utils.py | 8 +- src/openapi_python_generator/models.py | 9 +- tests/test_data/openapi.yaml | 38115 +++++++--------- 10 files changed, 16652 insertions(+), 22058 deletions(-) diff --git a/poetry.lock b/poetry.lock index aaa3477..3d49e8b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "aiohttp" @@ -6,6 +6,7 @@ version = "3.9.5" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, @@ -87,13 +88,14 @@ files = [ [package.dependencies] aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<5.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" yarl = ">=1.0,<2.0" [package.extras] -speedups = ["Brotli", "aiodns", "brotlicffi"] +speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] [[package]] name = "aiosignal" @@ -101,6 +103,7 @@ version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, @@ -111,13 +114,14 @@ frozenlist = ">=1.1.0" [[package]] name = "alabaster" -version = "0.7.16" -description = "A light, configurable Sphinx theme" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" optional = false -python-versions = ">=3.9" +python-versions = ">=3.6" +groups = ["dev"] files = [ - {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, - {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, ] [[package]] @@ -126,37 +130,58 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + [[package]] name = "anyio" version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, ] [package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\""] trio = ["trio (>=0.23)"] +[[package]] +name = "async-timeout" +version = "4.0.3" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, +] + [[package]] name = "attrs" version = "23.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, @@ -167,8 +192,8 @@ cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] dev = ["attrs[tests]", "pre-commit"] docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.6) ; platform_python_implementation == \"CPython\" and python_version >= \"3.8\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.8\""] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] [[package]] name = "authlib" @@ -176,6 +201,7 @@ version = "1.3.0" description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "Authlib-1.3.0-py2.py3-none-any.whl", hash = "sha256:9637e4de1fb498310a56900b3e2043a206b03cb11c05422014b0302cbc814be3"}, {file = "Authlib-1.3.0.tar.gz", hash = "sha256:959ea62a5b7b5123c5059758296122b57cd2585ae2ed1c0622c21b371ffdae06"}, @@ -190,11 +216,15 @@ version = "2.15.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, ] +[package.dependencies] +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} + [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] @@ -204,6 +234,7 @@ version = "1.7.8" description = "Security oriented static analyser for python code." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "bandit-1.7.8-py3-none-any.whl", hash = "sha256:509f7af645bc0cd8fd4587abc1a038fc795636671ee8204d502b933aee44f381"}, {file = "bandit-1.7.8.tar.gz", hash = "sha256:36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"}, @@ -219,7 +250,7 @@ stevedore = ">=1.20.0" baseline = ["GitPython (>=3.1.30)"] sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] -toml = ["tomli (>=1.1.0)"] +toml = ["tomli (>=1.1.0) ; python_version < \"3.11\""] yaml = ["PyYAML"] [[package]] @@ -228,6 +259,7 @@ version = "4.12.3" description = "Screen-scraping library" optional = false python-versions = ">=3.6.0" +groups = ["main", "dev"] files = [ {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, @@ -249,6 +281,7 @@ version = "24.4.2" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, @@ -280,10 +313,12 @@ mypy-extensions = ">=0.4.3" packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +d = ["aiohttp (>=3.7.4) ; sys_platform != \"win32\" or implementation_name != \"pypy\"", "aiohttp (>=3.7.4,!=3.9.0) ; sys_platform == \"win32\" and implementation_name == \"pypy\""] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -293,6 +328,7 @@ version = "1.1.0" description = "A string case conversion package." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "case-converter-1.1.0.tar.gz", hash = "sha256:2ed3fc6e3ffa8d601f9a31ffcbc8fbd19eaeb48671a79a8ef16394672824510e"}, {file = "case_converter-1.1.0-py3-none-any.whl", hash = "sha256:d0fbc665a4fd410e454630bcf5168dce62e147a98512647ed48b0a6b556986e3"}, @@ -304,6 +340,7 @@ version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main", "dev"] files = [ {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, @@ -315,6 +352,8 @@ version = "1.16.0" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" +groups = ["dev"] +markers = "platform_python_implementation != \"PyPy\"" files = [ {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, @@ -379,6 +418,7 @@ version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, @@ -390,6 +430,7 @@ version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" +groups = ["main", "dev"] files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -489,6 +530,7 @@ version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, @@ -503,10 +545,12 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "platform_system == \"Windows\"", dev = "platform_system == \"Windows\" or sys_platform == \"win32\""} [[package]] name = "coverage" @@ -514,6 +558,7 @@ version = "6.5.0" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "coverage-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53"}, {file = "coverage-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660"}, @@ -567,8 +612,11 @@ files = [ {file = "coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84"}, ] +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "cryptography" @@ -576,6 +624,7 @@ version = "42.0.7" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a987f840718078212fdf4504d0fd4c6effe34a7e4740378e59d47696e8dfb477"}, {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd13b5e9b543532453de08bcdc3cc7cebec6f9883e886fd20a92f26940fd3e7a"}, @@ -630,6 +679,7 @@ version = "1.8.1" description = "A utility for ensuring Google-style docstrings stay up to date with the source code." optional = false python-versions = ">=3.6,<4.0" +groups = ["dev"] files = [ {file = "darglint-1.8.1-py3-none-any.whl", hash = "sha256:5ae11c259c17b0701618a20c3da343a3eb98b3bc4b5a83d31cdd94f5ebdced8d"}, {file = "darglint-1.8.1.tar.gz", hash = "sha256:080d5106df149b199822e7ee7deb9c012b49891538f14a11be681044f0bb20da"}, @@ -641,6 +691,7 @@ version = "1.11.4" description = "A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators" optional = false python-versions = ">=3.7,<4.0" +groups = ["main"] files = [ {file = "deep_translator-1.11.4-py3-none-any.whl", hash = "sha256:d635df037e23fa35d12fd42dab72a0b55c9dd19e6292009ee7207e3f30b9e60a"}, {file = "deep_translator-1.11.4.tar.gz", hash = "sha256:801260c69231138707ea88a0955e484db7d40e210c9e0ae0f77372ffda5f4bf5"}, @@ -651,7 +702,7 @@ beautifulsoup4 = ">=4.9.1,<5.0.0" requests = ">=2.23.0,<3.0.0" [package.extras] -ai = ["openai (>=0.27.6,<0.28.0)"] +ai = ["openai (>=0.27.6,<0.28.0) ; python_full_version >= \"3.7.1\" and python_full_version < \"4.0.0\""] docx = ["docx2txt (>=0.8,<0.9)"] pdf = ["pypdf (>=3.3.0,<4.0.0)"] @@ -661,6 +712,7 @@ version = "0.3.8" description = "Distribution utilities" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, @@ -668,13 +720,14 @@ files = [ [[package]] name = "docutils" -version = "0.21.2" +version = "0.20.1" description = "Docutils -- Python Documentation Utilities" optional = false -python-versions = ">=3.9" +python-versions = ">=3.7" +groups = ["dev"] files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, ] [[package]] @@ -683,6 +736,7 @@ version = "0.6.4b0" description = "A parser for Python dependency files" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "dparse-0.6.4b0-py3-none-any.whl", hash = "sha256:592ff183348b8a5ea0a18442a7965e29445d3a26063654ec2c7e8ef42cd5753c"}, {file = "dparse-0.6.4b0.tar.gz", hash = "sha256:f8d49b41a527f3d16a269f854e6665245b325e50e41d2c213810cb984553e5c8"}, @@ -690,6 +744,7 @@ files = [ [package.dependencies] packaging = "*" +tomli = {version = "*", markers = "python_version < \"3.11\""} [package.extras] all = ["dparse[conda]", "dparse[pipenv]", "dparse[poetry]"] @@ -697,12 +752,32 @@ conda = ["pyyaml"] pipenv = ["pipenv"] poetry = ["poetry"] +[[package]] +name = "exceptiongroup" +version = "1.3.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "fastapi" version = "0.109.2" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "fastapi-0.109.2-py3-none-any.whl", hash = "sha256:2c9bab24667293b501cad8dd388c05240c850b58ec5876ee3283c47d6e1e3a4d"}, {file = "fastapi-0.109.2.tar.gz", hash = "sha256:f3817eac96fe4f65a2ebb4baa000f394e55f5fccdaf7f75250804bc58f354f73"}, @@ -722,6 +797,7 @@ version = "3.14.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, @@ -730,23 +806,24 @@ files = [ [package.extras] docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] +typing = ["typing-extensions (>=4.8) ; python_version < \"3.11\""] [[package]] name = "flake8" -version = "7.0.0" +version = "5.0.4" description = "the modular source code checker: pep8 pyflakes and co" optional = false -python-versions = ">=3.8.1" +python-versions = ">=3.6.1" +groups = ["dev"] files = [ - {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, - {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, + {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, + {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.11.0,<2.12.0" -pyflakes = ">=3.2.0,<3.3.0" +pycodestyle = ">=2.9.0,<2.10.0" +pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flake8-bandit" @@ -754,6 +831,7 @@ version = "4.1.1" description = "Automated security testing with bandit and flake8." optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "flake8_bandit-4.1.1-py3-none-any.whl", hash = "sha256:4c8a53eb48f23d4ef1e59293657181a3c989d0077c9952717e98a0eace43e06d"}, {file = "flake8_bandit-4.1.1.tar.gz", hash = "sha256:068e09287189cbfd7f986e92605adea2067630b75380c6b5733dab7d87f9a84e"}, @@ -765,18 +843,19 @@ flake8 = ">=5.0.0" [[package]] name = "flake8-bugbear" -version = "24.4.26" +version = "23.3.12" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." optional = false -python-versions = ">=3.8.1" +python-versions = ">=3.7" +groups = ["dev"] files = [ - {file = "flake8_bugbear-24.4.26-py3-none-any.whl", hash = "sha256:cb430dd86bc821d79ccc0b030789a9c87a47a369667f12ba06e80f11305e8258"}, - {file = "flake8_bugbear-24.4.26.tar.gz", hash = "sha256:ff8d4ba5719019ebf98e754624c30c05cef0dadcf18a65d91c7567300e52a130"}, + {file = "flake8-bugbear-23.3.12.tar.gz", hash = "sha256:e3e7f74c8a49ad3794a7183353026dabd68c74030d5f46571f84c1fb0eb79363"}, + {file = "flake8_bugbear-23.3.12-py3-none-any.whl", hash = "sha256:beb5c7efcd7ccc2039ef66a77bb8db925e7be3531ff1cb4d0b7030d0e2113d72"}, ] [package.dependencies] attrs = ">=19.2.0" -flake8 = ">=6.0.0" +flake8 = ">=3.0.0" [package.extras] dev = ["coverage", "hypothesis", "hypothesmith (>=0.2)", "pre-commit", "pytest", "tox"] @@ -787,6 +866,7 @@ version = "1.7.0" description = "Extension for flake8 which uses pydocstyle to check docstrings" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "flake8_docstrings-1.7.0-py2.py3-none-any.whl", hash = "sha256:51f2344026da083fc084166a9353f5082b01f72901df422f74b4d953ae88ac75"}, {file = "flake8_docstrings-1.7.0.tar.gz", hash = "sha256:4c8cc748dc16e6869728699e5d0d685da9a10b0ea718e090b1ba088e67a941af"}, @@ -802,6 +882,7 @@ version = "0.3.0" description = "Python docstring reStructuredText (RST) validator for flake8" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "flake8-rst-docstrings-0.3.0.tar.gz", hash = "sha256:d1ce22b4bd37b73cd86b8d980e946ef198cfcc18ed82fedb674ceaa2f8d1afa4"}, {file = "flake8_rst_docstrings-0.3.0-py3-none-any.whl", hash = "sha256:f8c3c6892ff402292651c31983a38da082480ad3ba253743de52989bdc84ca1c"}, @@ -821,6 +902,7 @@ version = "1.4.1" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, @@ -907,6 +989,7 @@ version = "2024.5.6" description = "A clean customisable Sphinx documentation theme." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "furo-2024.5.6-py3-none-any.whl", hash = "sha256:490a00d08c0a37ecc90de03ae9227e8eb5d6f7f750edf9807f398a2bdf2358de"}, {file = "furo-2024.5.6.tar.gz", hash = "sha256:81f205a6605ebccbb883350432b4831c0196dd3d1bc92f61e1f459045b3d2b0b"}, @@ -924,6 +1007,7 @@ version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -935,6 +1019,7 @@ version = "1.0.5" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, @@ -956,6 +1041,7 @@ version = "0.27.0" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, @@ -969,7 +1055,7 @@ idna = "*" sniffio = "*" [package.extras] -brotli = ["brotli", "brotlicffi"] +brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -980,6 +1066,7 @@ version = "2.5.36" description = "File identification library for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "identify-2.5.36-py2.py3-none-any.whl", hash = "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa"}, {file = "identify-2.5.36.tar.gz", hash = "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"}, @@ -994,6 +1081,7 @@ version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" +groups = ["main", "dev"] files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, @@ -1005,17 +1093,44 @@ version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["dev"] files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] +[[package]] +name = "importlib-metadata" +version = "8.5.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version < \"3.10\"" +files = [ + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, +] + +[package.dependencies] +zipp = ">=3.20" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +perf = ["ipython"] +test = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] + [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, @@ -1027,6 +1142,7 @@ version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" +groups = ["main"] files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, @@ -1041,6 +1157,7 @@ version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, @@ -1058,6 +1175,7 @@ version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, @@ -1082,6 +1200,7 @@ version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, @@ -1151,6 +1270,7 @@ version = "3.21.2" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "marshmallow-3.21.2-py3-none-any.whl", hash = "sha256:70b54a6282f4704d12c0a41599682c5c5450e843b9ec406308653b47c59648a1"}, {file = "marshmallow-3.21.2.tar.gz", hash = "sha256:82408deadd8b33d56338d2182d455db632c6313aa2af61916672146bb32edc56"}, @@ -1170,6 +1290,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -1181,6 +1302,7 @@ version = "0.4.1" description = "Collection of plugins for markdown-it-py" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mdit_py_plugins-0.4.1-py3-none-any.whl", hash = "sha256:1020dfe4e6bfc2c79fb49ae4e3f5b297f5ccd20f010187acc52af2921e27dc6a"}, {file = "mdit_py_plugins-0.4.1.tar.gz", hash = "sha256:834b8ac23d1cd60cec703646ffd22ae97b7955a6d596eb1d304be1e251ae499c"}, @@ -1200,6 +1322,7 @@ version = "0.1.2" description = "Markdown URL utilities" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, @@ -1211,6 +1334,7 @@ version = "6.0.5" description = "multidict implementation" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, @@ -1310,6 +1434,7 @@ version = "1.10.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da1cbf08fb3b851ab3b9523a884c232774008267b1f83371ace57f412fe308c2"}, {file = "mypy-1.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:12b6bfc1b1a66095ab413160a6e520e1dc076a28f3e22f7fb25ba3b000b4ef99"}, @@ -1342,6 +1467,7 @@ files = [ [package.dependencies] mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = ">=4.1.0" [package.extras] @@ -1356,6 +1482,7 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["main", "dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -1367,6 +1494,7 @@ version = "3.0.1" description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "myst_parser-3.0.1-py3-none-any.whl", hash = "sha256:6457aaa33a5d474aca678b8ead9b3dc298e89c68e67012e73146ea6fd54babf1"}, {file = "myst_parser-3.0.1.tar.gz", hash = "sha256:88f0cb406cb363b077d176b51c476f62d60604d68a8dcdf4832e080441301a87"}, @@ -1393,6 +1521,7 @@ version = "1.9.0" description = "Node.js virtual environment builder" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] files = [ {file = "nodeenv-1.9.0-py2.py3-none-any.whl", hash = "sha256:508ecec98f9f3330b636d4448c0f1a56fc68017c68f1e7857ebc52acf0eb879a"}, {file = "nodeenv-1.9.0.tar.gz", hash = "sha256:07f144e90dae547bf0d4ee8da0ee42664a42a04e02ed68e06324348dafe4bdb1"}, @@ -1400,13 +1529,14 @@ files = [ [[package]] name = "openapi-pydantic" -version = "0.4.0" +version = "0.5.1" description = "Pydantic OpenAPI schema implementation" optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" +groups = ["main"] files = [ - {file = "openapi_pydantic-0.4.0-py3-none-any.whl", hash = "sha256:8f782be72a4792bf6b5bbc4cf694fda2ca0719c0354ee6a062179982544fb5c0"}, - {file = "openapi_pydantic-0.4.0.tar.gz", hash = "sha256:22c43e0da5f479d28e11c083d6d3492e09a6ef9e2b3201ccddbfbc8786db1ffb"}, + {file = "openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146"}, + {file = "openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d"}, ] [package.dependencies] @@ -1418,6 +1548,7 @@ version = "3.10.3" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "orjson-3.10.3-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9fb6c3f9f5490a3eb4ddd46fc1b6eadb0d6fc16fb3f07320149c3286a1409dd8"}, {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:252124b198662eee80428f1af8c63f7ff077c88723fe206a25df8dc57a57b1fa"}, @@ -1473,6 +1604,7 @@ version = "24.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, @@ -1484,6 +1616,7 @@ version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, @@ -1495,6 +1628,7 @@ version = "6.0.0" description = "Python Build Reasonableness" optional = false python-versions = ">=2.6" +groups = ["dev"] files = [ {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, @@ -1506,6 +1640,7 @@ version = "0.14.1" description = "Check PEP-8 naming conventions, plugin for flake8" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pep8-naming-0.14.1.tar.gz", hash = "sha256:1ef228ae80875557eb6c1549deafed4dabbf3261cfcafa12f773fe0db9be8a36"}, {file = "pep8_naming-0.14.1-py3-none-any.whl", hash = "sha256:63f514fc777d715f935faf185dedd679ab99526a7f2f503abb61587877f7b1c5"}, @@ -1520,6 +1655,7 @@ version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, @@ -1536,6 +1672,7 @@ version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -1547,13 +1684,14 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.7.1" +version = "3.5.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"}, - {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"}, + {file = "pre_commit-3.5.0-py2.py3-none-any.whl", hash = "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"}, + {file = "pre_commit-3.5.0.tar.gz", hash = "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32"}, ] [package.dependencies] @@ -1569,6 +1707,7 @@ version = "4.6.0" description = "Some out-of-the-box hooks for pre-commit." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pre_commit_hooks-4.6.0-py2.py3-none-any.whl", hash = "sha256:a69199e6a2d45ec59c1020a81ca1549abddc2afb798276d9a0d951752d6abbfe"}, {file = "pre_commit_hooks-4.6.0.tar.gz", hash = "sha256:eb1f43ee67869cd41b4c59017fad4a0f9d4d61201d163f2135535aaf65035a2b"}, @@ -1576,16 +1715,18 @@ files = [ [package.dependencies] "ruamel.yaml" = ">=0.15" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} [[package]] name = "pycodestyle" -version = "2.11.1" +version = "2.9.1" description = "Python style guide checker" optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" +groups = ["dev"] files = [ - {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, - {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, + {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, + {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, ] [[package]] @@ -1594,6 +1735,8 @@ version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" +groups = ["dev"] +markers = "platform_python_implementation != \"PyPy\"" files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, @@ -1605,6 +1748,7 @@ version = "2.7.2" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "pydantic-2.7.2-py3-none-any.whl", hash = "sha256:834ab954175f94e6e68258537dc49402c4a5e9d0409b9f1b86b7e934a8372de7"}, {file = "pydantic-2.7.2.tar.gz", hash = "sha256:71b2945998f9c9b7919a45bde9a50397b289937d215ae141c1d0903ba7149fd7"}, @@ -1624,6 +1768,7 @@ version = "2.18.3" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "pydantic_core-2.18.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:744697428fcdec6be5670460b578161d1ffe34743a5c15656be7ea82b008197c"}, {file = "pydantic_core-2.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37b40c05ced1ba4218b14986fe6f283d22e1ae2ff4c8e28881a70fb81fbfcda7"}, @@ -1715,6 +1860,7 @@ version = "6.3.0" description = "Python docstring style checker" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019"}, {file = "pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1"}, @@ -1724,17 +1870,18 @@ files = [ snowballstemmer = ">=2.2.0" [package.extras] -toml = ["tomli (>=1.2.3)"] +toml = ["tomli (>=1.2.3) ; python_version < \"3.11\""] [[package]] name = "pyflakes" -version = "3.2.0" +version = "2.5.0" description = "passive checker of Python programs" optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" +groups = ["dev"] files = [ - {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, - {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, ] [[package]] @@ -1743,6 +1890,7 @@ version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, @@ -1757,6 +1905,7 @@ version = "8.2.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pytest-8.2.1-py3-none-any.whl", hash = "sha256:faccc5d332b8c3719f40283d0d44aa5cf101cec36f88cde9ed8f2bc0538612b1"}, {file = "pytest-8.2.1.tar.gz", hash = "sha256:5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd"}, @@ -1764,9 +1913,11 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" pluggy = ">=1.5,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] @@ -1777,6 +1928,7 @@ version = "3.0.0" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, @@ -1789,19 +1941,33 @@ pytest = ">=4.6" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +[[package]] +name = "pytz" +version = "2025.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version == \"3.8\"" +files = [ + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, +] + [[package]] name = "pyupgrade" -version = "3.15.2" +version = "3.8.0" description = "A tool to automatically upgrade syntax for newer versions." optional = false -python-versions = ">=3.8.1" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "pyupgrade-3.15.2-py2.py3-none-any.whl", hash = "sha256:ce309e0ff8ecb73f56a45f12570be84bbbde9540d13697cacb261a7f595fb1f5"}, - {file = "pyupgrade-3.15.2.tar.gz", hash = "sha256:c488d6896c546d25845712ef6402657123008d56c1063174e27aabe15bd6b4e5"}, + {file = "pyupgrade-3.8.0-py2.py3-none-any.whl", hash = "sha256:08d0e6129f5e9da7e7a581bdbea689e0d49c3c93eeaf156a07ae2fd794f52660"}, + {file = "pyupgrade-3.8.0.tar.gz", hash = "sha256:1facb0b8407cca468dfcc1d13717e3a85aa37b9e6e7338664ad5bfe5ef50c867"}, ] [package.dependencies] -tokenize-rt = ">=5.2.0" +tokenize-rt = ">=3.2.0" [[package]] name = "pyyaml" @@ -1809,12 +1975,14 @@ version = "6.0.1" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.6" +groups = ["main", "dev"] files = [ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -1822,8 +1990,16 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -1840,6 +2016,7 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -1847,6 +2024,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -1858,6 +2036,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -1879,6 +2058,7 @@ version = "0.20.2" description = "A utility for mocking out the Python HTTPX and HTTP Core libraries." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "respx-0.20.2-py2.py3-none-any.whl", hash = "sha256:ab8e1cf6da28a5b2dd883ea617f8130f77f676736e6e9e4a25817ad116a172c9"}, {file = "respx-0.20.2.tar.gz", hash = "sha256:07cf4108b1c88b82010f67d3c831dae33a375c7b436e54d87737c7f9f99be643"}, @@ -1893,6 +2073,7 @@ version = "1.4.0" description = "reStructuredText linter" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "restructuredtext_lint-1.4.0.tar.gz", hash = "sha256:1b235c0c922341ab6c530390892eb9e92f90b9b75046063e047cacfb0f050c45"}, ] @@ -1906,6 +2087,7 @@ version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" +groups = ["dev"] files = [ {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, @@ -1914,6 +2096,7 @@ files = [ [package.dependencies] markdown-it-py = ">=2.2.0" pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<9)"] @@ -1924,6 +2107,7 @@ version = "0.18.6" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "ruamel.yaml-0.18.6-py3-none-any.whl", hash = "sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636"}, {file = "ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b"}, @@ -1942,6 +2126,8 @@ version = "0.2.8" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" optional = false python-versions = ">=3.6" +groups = ["dev"] +markers = "platform_python_implementation == \"CPython\"" files = [ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, @@ -2001,6 +2187,7 @@ version = "3.2.0" description = "Checks installed dependencies for known vulnerabilities and licenses." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "safety-3.2.0-py3-none-any.whl", hash = "sha256:a432fc9d17e79a4386c4f093656b617c56f839cde022649cfa796d72c7a544de"}, {file = "safety-3.2.0.tar.gz", hash = "sha256:8bd5cab5f3d8a61ce0ea6e98f267c1006d056097c45c644fee7afeff7d5949c1"}, @@ -2034,6 +2221,7 @@ version = "0.0.2" description = "Schemas for Safety tools" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "safety_schemas-0.0.2-py3-none-any.whl", hash = "sha256:277c077ce6e53221874a87c29515ffdd2f3773a6db4d035a9f67cc98db3b8c7f"}, {file = "safety_schemas-0.0.2.tar.gz", hash = "sha256:7d1b040ec06480f05cff6b45ea7a93e09c8942df864fb0d01ddeb67c323cfa8c"}, @@ -2052,6 +2240,7 @@ version = "70.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, @@ -2059,7 +2248,7 @@ files = [ [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov ; platform_python_implementation != \"PyPy\"", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "shellingham" @@ -2067,6 +2256,7 @@ version = "1.5.4" description = "Tool to Detect Surrounding Shell" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, @@ -2078,6 +2268,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -2089,6 +2280,7 @@ version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, @@ -2100,6 +2292,7 @@ version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, @@ -2107,24 +2300,26 @@ files = [ [[package]] name = "sphinx" -version = "7.3.7" +version = "7.1.2" description = "Python documentation generator" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, - {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, + {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, + {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, ] [package.dependencies] -alabaster = ">=0.7.14,<0.8.0" +alabaster = ">=0.7,<0.8" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.22" +docutils = ">=0.18.1,<0.21" imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" packaging = ">=21.0" -Pygments = ">=2.14" +Pygments = ">=2.13" requests = ">=2.25.0" snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" @@ -2132,12 +2327,12 @@ sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.9" +sphinxcontrib-serializinghtml = ">=1.1.5" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "importlib_metadata", "mypy (==1.9.0)", "pytest (>=6.0)", "ruff (==0.3.7)", "sphinx-lint", "tomli", "types-docutils", "types-requests"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=6.0)", "setuptools (>=67.0)"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-basic-ng" @@ -2145,6 +2340,7 @@ version = "1.0.0b2" description = "A modern skeleton for Sphinx themes." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b"}, {file = "sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9"}, @@ -2158,50 +2354,50 @@ docs = ["furo", "ipython", "myst-parser", "sphinx-copybutton", "sphinx-inline-ta [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.8" +version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, - {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.6" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." optional = false -python-versions = ">=3.9" +python-versions = ">=3.5" +groups = ["dev"] files = [ - {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, - {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.5" +version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, - {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] @@ -2210,6 +2406,7 @@ version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, @@ -2220,34 +2417,34 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.7" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." optional = false -python-versions = ">=3.9" +python-versions = ">=3.5" +groups = ["dev"] files = [ - {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, - {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.10" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." optional = false -python-versions = ">=3.9" +python-versions = ">=3.5" +groups = ["dev"] files = [ - {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, - {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] @@ -2256,6 +2453,7 @@ version = "0.36.3" description = "The little ASGI library that shines." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "starlette-0.36.3-py3-none-any.whl", hash = "sha256:13d429aa93a61dc40bf503e8c801db1f1bca3dc706b10ef2434a36123568f044"}, {file = "starlette-0.36.3.tar.gz", hash = "sha256:90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080"}, @@ -2263,6 +2461,7 @@ files = [ [package.dependencies] anyio = ">=3.4.0,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] @@ -2273,6 +2472,7 @@ version = "5.2.0" description = "Manage dynamic plugins for Python applications" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, @@ -2287,28 +2487,74 @@ version = "5.2.0" description = "A wrapper around the stdlib `tokenize` which roundtrips." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "tokenize_rt-5.2.0-py2.py3-none-any.whl", hash = "sha256:b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289"}, {file = "tokenize_rt-5.2.0.tar.gz", hash = "sha256:9fe80f8a5c1edad2d3ede0f37481cc0cc1538a2f442c9c2f9e4feacd2792d054"}, ] +[[package]] +name = "tomli" +version = "2.2.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] +markers = {main = "python_version < \"3.11\"", dev = "python_full_version <= \"3.11.0a6\""} + [[package]] name = "typeguard" version = "4.3.0" description = "Run-time type checker for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "typeguard-4.3.0-py3-none-any.whl", hash = "sha256:4d24c5b39a117f8a895b9da7a9b3114f04eb63bade45a4492de49b175b6f7dfa"}, {file = "typeguard-4.3.0.tar.gz", hash = "sha256:92ee6a0aec9135181eae6067ebd617fd9de8d75d714fb548728a4933b1dea651"}, ] [package.dependencies] +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} typing-extensions = ">=4.10.0" [package.extras] doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.3.0)"] -test = ["coverage[toml] (>=7)", "mypy (>=1.2.0)", "pytest (>=7)"] +test = ["coverage[toml] (>=7)", "mypy (>=1.2.0) ; platform_python_implementation != \"PyPy\"", "pytest (>=7)"] [[package]] name = "typer" @@ -2316,6 +2562,7 @@ version = "0.12.3" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, @@ -2333,6 +2580,7 @@ version = "4.12.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.12.0-py3-none-any.whl", hash = "sha256:b349c66bea9016ac22978d800cfff206d5f9816951f12a7d0ec5578b0a819594"}, {file = "typing_extensions-4.12.0.tar.gz", hash = "sha256:8cbcdc8606ebcb0d95453ad7dc5065e6237b6aa230a31e81d0f440c30fed5fd8"}, @@ -2344,13 +2592,14 @@ version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -2361,6 +2610,7 @@ version = "0.18.3" description = "The lightning-fast ASGI server." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "uvicorn-0.18.3-py3-none-any.whl", hash = "sha256:0abd429ebb41e604ed8d2be6c60530de3408f250e8d2d84967d85ba9e86fe3af"}, {file = "uvicorn-0.18.3.tar.gz", hash = "sha256:9a66e7c42a2a95222f76ec24a4b754c158261c4696e683b9dadc72b590e0311b"}, @@ -2371,7 +2621,7 @@ click = ">=7.0" h11 = ">=0.8" [package.extras] -standard = ["colorama (>=0.4)", "httptools (>=0.4.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.0)"] +standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.4.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.0)"] [[package]] name = "virtualenv" @@ -2379,6 +2629,7 @@ version = "20.26.2" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "virtualenv-20.26.2-py3-none-any.whl", hash = "sha256:a624db5e94f01ad993d476b9ee5346fdf7b9de43ccaee0e0197012dc838a0e9b"}, {file = "virtualenv-20.26.2.tar.gz", hash = "sha256:82bf0f4eebbb78d36ddaee0283d43fe5736b53880b8a8cdcd37390a07ac3741c"}, @@ -2391,7 +2642,7 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "xdoctest" @@ -2399,6 +2650,7 @@ version = "1.1.3" description = "A rewrite of the builtin doctest module" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "xdoctest-1.1.3-py3-none-any.whl", hash = "sha256:9360535bd1a971ffc216d9613898cedceb81d0fd024587cc3c03c74d14c00a31"}, {file = "xdoctest-1.1.3.tar.gz", hash = "sha256:84e76a42a11a5926ff66d9d84c616bc101821099672550481ad96549cbdd02ae"}, @@ -2409,16 +2661,16 @@ colorama = {version = "*", optional = true, markers = "platform_system == \"Wind Pygments = {version = "*", optional = true, markers = "python_version >= \"3.5.0\" and extra == \"colors\""} [package.extras] -all = ["IPython (>=7.10.0)", "IPython (>=7.23.1)", "Pygments (>=2.0.0)", "Pygments (>=2.4.1)", "attrs (>=19.2.0)", "colorama (>=0.4.1)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.3.0)", "debugpy (>=1.6.0)", "ipykernel (>=5.2.0)", "ipykernel (>=6.0.0)", "ipykernel (>=6.11.0)", "ipython-genutils (>=0.2.0)", "jedi (>=0.16)", "jinja2 (>=3.0.0)", "jupyter-client (>=6.1.5)", "jupyter-client (>=7.0.0)", "jupyter-core (>=4.7.0)", "nbconvert (>=6.0.0)", "nbconvert (>=6.1.0)", "pyflakes (>=2.2.0)", "pytest (>=4.6.0)", "pytest (>=4.6.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "tomli (>=0.2.0)", "typing (>=3.7.4)"] -all-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipykernel (==6.11.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "nbconvert (==6.1.0)", "pyflakes (==2.2.0)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "tomli (==0.2.0)", "typing (==3.7.4)"] -colors = ["Pygments", "Pygments", "colorama"] -jupyter = ["IPython", "IPython", "attrs", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "nbconvert"] -optional = ["IPython (>=7.10.0)", "IPython (>=7.23.1)", "Pygments (>=2.0.0)", "Pygments (>=2.4.1)", "attrs (>=19.2.0)", "colorama (>=0.4.1)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.3.0)", "debugpy (>=1.6.0)", "ipykernel (>=5.2.0)", "ipykernel (>=6.0.0)", "ipykernel (>=6.11.0)", "ipython-genutils (>=0.2.0)", "jedi (>=0.16)", "jinja2 (>=3.0.0)", "jupyter-client (>=6.1.5)", "jupyter-client (>=7.0.0)", "jupyter-core (>=4.7.0)", "nbconvert (>=6.0.0)", "nbconvert (>=6.1.0)", "pyflakes (>=2.2.0)", "tomli (>=0.2.0)"] -optional-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipykernel (==6.11.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "nbconvert (==6.1.0)", "pyflakes (==2.2.0)", "tomli (==0.2.0)"] -tests = ["pytest (>=4.6.0)", "pytest (>=4.6.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "typing (>=3.7.4)"] -tests-binary = ["cmake", "cmake", "ninja", "ninja", "pybind11", "pybind11", "scikit-build", "scikit-build"] -tests-binary-strict = ["cmake (==3.21.2)", "cmake (==3.25.0)", "ninja (==1.10.2)", "ninja (==1.11.1)", "pybind11 (==2.10.3)", "pybind11 (==2.7.1)", "scikit-build (==0.11.1)", "scikit-build (==0.16.1)"] -tests-strict = ["pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "typing (==3.7.4)"] +all = ["IPython (>=7.10.0) ; python_version == \"3.6\"", "IPython (>=7.23.1) ; python_version >= \"3.7\"", "Pygments (>=2.0.0) ; python_version < \"3.5.0\" and python_version >= \"2.7.0\"", "Pygments (>=2.4.1) ; python_version >= \"3.5.0\"", "attrs (>=19.2.0) ; python_version >= \"3.6\"", "colorama (>=0.4.1) ; platform_system == \"Windows\"", "debugpy (>=1.0.0) ; python_version == \"3.6\"", "debugpy (>=1.0.0) ; python_version == \"3.7\"", "debugpy (>=1.0.0) ; python_version == \"3.8\"", "debugpy (>=1.3.0) ; python_version == \"3.9\"", "debugpy (>=1.6.0) ; python_version >= \"3.10\"", "ipykernel (>=5.2.0) ; python_version == \"3.6\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (>=6.0.0) ; python_version < \"3.12\" and python_version >= \"3.7\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (>=6.11.0) ; python_version < \"4.0\" and python_version >= \"3.12\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipython-genutils (>=0.2.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jedi (>=0.16) ; python_version >= \"3.6\"", "jinja2 (>=3.0.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jupyter-client (>=6.1.5) ; python_version < \"3.6.1\" and python_version >= \"3.6\"", "jupyter-client (>=7.0.0) ; python_version >= \"3.6.1\"", "jupyter-core (>=4.7.0) ; python_version >= \"3.6\"", "nbconvert (>=6.0.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\" and platform_python_implementation != \"PyPy\"", "nbconvert (>=6.1.0) ; python_version >= \"3.7.0\" and platform_python_implementation != \"PyPy\"", "pyflakes (>=2.2.0)", "pytest (>=4.6.0) ; python_version < \"3.10.0\" and python_version >= \"3.7.0\"", "pytest (>=4.6.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\"", "pytest (>=6.2.5) ; python_version >= \"3.10.0\"", "pytest-cov (>=3.0.0) ; python_version >= \"3.6.0\"", "tomli (>=0.2.0) ; python_version < \"3.11.0\" and python_version >= \"3.6\"", "typing (>=3.7.4) ; python_version <= \"3.4\""] +all-strict = ["IPython (==7.10.0) ; python_version == \"3.6\"", "IPython (==7.23.1) ; python_version >= \"3.7\"", "Pygments (==2.0.0) ; python_version < \"3.5.0\" and python_version >= \"2.7.0\"", "Pygments (==2.4.1) ; python_version >= \"3.5.0\"", "attrs (==19.2.0) ; python_version >= \"3.6\"", "colorama (==0.4.1) ; platform_system == \"Windows\"", "debugpy (==1.0.0) ; python_version == \"3.6\"", "debugpy (==1.0.0) ; python_version == \"3.7\"", "debugpy (==1.0.0) ; python_version == \"3.8\"", "debugpy (==1.3.0) ; python_version == \"3.9\"", "debugpy (==1.6.0) ; python_version >= \"3.10\"", "ipykernel (==5.2.0) ; python_version == \"3.6\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (==6.0.0) ; python_version < \"3.12\" and python_version >= \"3.7\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (==6.11.0) ; python_version < \"4.0\" and python_version >= \"3.12\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipython-genutils (==0.2.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jedi (==0.16) ; python_version >= \"3.6\"", "jinja2 (==3.0.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jupyter-client (==6.1.5) ; python_version < \"3.6.1\" and python_version >= \"3.6\"", "jupyter-client (==7.0.0) ; python_version >= \"3.6.1\"", "jupyter-core (==4.7.0) ; python_version >= \"3.6\"", "nbconvert (==6.0.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\" and platform_python_implementation != \"PyPy\"", "nbconvert (==6.1.0) ; python_version >= \"3.7.0\" and platform_python_implementation != \"PyPy\"", "pyflakes (==2.2.0)", "pytest (==4.6.0) ; python_version < \"3.10.0\" and python_version >= \"3.7.0\"", "pytest (==4.6.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\"", "pytest (==6.2.5) ; python_version >= \"3.10.0\"", "pytest-cov (==3.0.0) ; python_version >= \"3.6.0\"", "tomli (==0.2.0) ; python_version < \"3.11.0\" and python_version >= \"3.6\"", "typing (==3.7.4) ; python_version <= \"3.4\""] +colors = ["Pygments ; python_version < \"3.5.0\" and python_version >= \"2.7.0\"", "Pygments ; python_version >= \"3.5.0\"", "colorama ; platform_system == \"Windows\""] +jupyter = ["IPython ; python_version == \"3.6\"", "IPython ; python_version >= \"3.7\"", "attrs ; python_version >= \"3.6\"", "debugpy ; python_version == \"3.6\"", "debugpy ; python_version == \"3.7\"", "debugpy ; python_version == \"3.8\"", "debugpy ; python_version == \"3.9\"", "debugpy ; python_version >= \"3.10\"", "ipykernel ; python_version < \"3.12\" and python_version >= \"3.7\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel ; python_version < \"4.0\" and python_version >= \"3.12\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel ; python_version == \"3.6\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipython-genutils ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jedi ; python_version >= \"3.6\"", "jinja2 ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jupyter-client ; python_version < \"3.6.1\" and python_version >= \"3.6\"", "jupyter-client ; python_version >= \"3.6.1\"", "jupyter-core ; python_version >= \"3.6\"", "nbconvert ; python_version < \"3.7.0\" and python_version >= \"3.6.0\" and platform_python_implementation != \"PyPy\"", "nbconvert ; python_version >= \"3.7.0\" and platform_python_implementation != \"PyPy\""] +optional = ["IPython (>=7.10.0) ; python_version == \"3.6\"", "IPython (>=7.23.1) ; python_version >= \"3.7\"", "Pygments (>=2.0.0) ; python_version < \"3.5.0\" and python_version >= \"2.7.0\"", "Pygments (>=2.4.1) ; python_version >= \"3.5.0\"", "attrs (>=19.2.0) ; python_version >= \"3.6\"", "colorama (>=0.4.1) ; platform_system == \"Windows\"", "debugpy (>=1.0.0) ; python_version == \"3.6\"", "debugpy (>=1.0.0) ; python_version == \"3.7\"", "debugpy (>=1.0.0) ; python_version == \"3.8\"", "debugpy (>=1.3.0) ; python_version == \"3.9\"", "debugpy (>=1.6.0) ; python_version >= \"3.10\"", "ipykernel (>=5.2.0) ; python_version == \"3.6\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (>=6.0.0) ; python_version < \"3.12\" and python_version >= \"3.7\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (>=6.11.0) ; python_version < \"4.0\" and python_version >= \"3.12\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipython-genutils (>=0.2.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jedi (>=0.16) ; python_version >= \"3.6\"", "jinja2 (>=3.0.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jupyter-client (>=6.1.5) ; python_version < \"3.6.1\" and python_version >= \"3.6\"", "jupyter-client (>=7.0.0) ; python_version >= \"3.6.1\"", "jupyter-core (>=4.7.0) ; python_version >= \"3.6\"", "nbconvert (>=6.0.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\" and platform_python_implementation != \"PyPy\"", "nbconvert (>=6.1.0) ; python_version >= \"3.7.0\" and platform_python_implementation != \"PyPy\"", "pyflakes (>=2.2.0)", "tomli (>=0.2.0) ; python_version < \"3.11.0\" and python_version >= \"3.6\""] +optional-strict = ["IPython (==7.10.0) ; python_version == \"3.6\"", "IPython (==7.23.1) ; python_version >= \"3.7\"", "Pygments (==2.0.0) ; python_version < \"3.5.0\" and python_version >= \"2.7.0\"", "Pygments (==2.4.1) ; python_version >= \"3.5.0\"", "attrs (==19.2.0) ; python_version >= \"3.6\"", "colorama (==0.4.1) ; platform_system == \"Windows\"", "debugpy (==1.0.0) ; python_version == \"3.6\"", "debugpy (==1.0.0) ; python_version == \"3.7\"", "debugpy (==1.0.0) ; python_version == \"3.8\"", "debugpy (==1.3.0) ; python_version == \"3.9\"", "debugpy (==1.6.0) ; python_version >= \"3.10\"", "ipykernel (==5.2.0) ; python_version == \"3.6\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (==6.0.0) ; python_version < \"3.12\" and python_version >= \"3.7\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipykernel (==6.11.0) ; python_version < \"4.0\" and python_version >= \"3.12\" and (platform_system != \"Windows\" or platform_python_implementation != \"PyPy\")", "ipython-genutils (==0.2.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jedi (==0.16) ; python_version >= \"3.6\"", "jinja2 (==3.0.0) ; python_version >= \"3.6\" and platform_python_implementation != \"PyPy\"", "jupyter-client (==6.1.5) ; python_version < \"3.6.1\" and python_version >= \"3.6\"", "jupyter-client (==7.0.0) ; python_version >= \"3.6.1\"", "jupyter-core (==4.7.0) ; python_version >= \"3.6\"", "nbconvert (==6.0.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\" and platform_python_implementation != \"PyPy\"", "nbconvert (==6.1.0) ; python_version >= \"3.7.0\" and platform_python_implementation != \"PyPy\"", "pyflakes (==2.2.0)", "tomli (==0.2.0) ; python_version < \"3.11.0\" and python_version >= \"3.6\""] +tests = ["pytest (>=4.6.0) ; python_version < \"3.10.0\" and python_version >= \"3.7.0\"", "pytest (>=4.6.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\"", "pytest (>=6.2.5) ; python_version >= \"3.10.0\"", "pytest-cov (>=3.0.0) ; python_version >= \"3.6.0\"", "typing (>=3.7.4) ; python_version <= \"3.4\""] +tests-binary = ["cmake ; python_version < \"3.11\"", "cmake ; python_version < \"4.0\" and python_version >= \"3.11\"", "ninja ; python_version < \"3.11\"", "ninja ; python_version < \"4.0\" and python_version >= \"3.11\"", "pybind11 ; python_version < \"3.11\"", "pybind11 ; python_version < \"4.0\" and python_version >= \"3.11\"", "scikit-build ; python_version < \"3.11\"", "scikit-build ; python_version < \"4.0\" and python_version >= \"3.11\""] +tests-binary-strict = ["cmake (==3.21.2) ; python_version < \"3.11\"", "cmake (==3.25.0) ; python_version < \"4.0\" and python_version >= \"3.11\"", "ninja (==1.10.2) ; python_version < \"3.11\"", "ninja (==1.11.1) ; python_version < \"4.0\" and python_version >= \"3.11\"", "pybind11 (==2.10.3) ; python_version < \"4.0\" and python_version >= \"3.11\"", "pybind11 (==2.7.1) ; python_version < \"3.11\"", "scikit-build (==0.11.1) ; python_version < \"3.11\"", "scikit-build (==0.16.1) ; python_version < \"4.0\" and python_version >= \"3.11\""] +tests-strict = ["pytest (==4.6.0) ; python_version < \"3.10.0\" and python_version >= \"3.7.0\"", "pytest (==4.6.0) ; python_version < \"3.7.0\" and python_version >= \"3.6.0\"", "pytest (==6.2.5) ; python_version >= \"3.10.0\"", "pytest-cov (==3.0.0) ; python_version >= \"3.6.0\"", "typing (==3.7.4) ; python_version <= \"3.4\""] [[package]] name = "yarl" @@ -2426,6 +2678,7 @@ version = "1.9.4" description = "Yet another URL library" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, @@ -2523,7 +2776,28 @@ files = [ idna = ">=2.0" multidict = ">=4.0" +[[package]] +name = "zipp" +version = "3.20.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version < \"3.10\"" +files = [ + {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, + {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + [metadata] -lock-version = "2.0" -python-versions = ">=3.11,<3.12" -content-hash = "b565c1c676c086ceff431cd23c305128150242e51972600647287d129b42af9b" +lock-version = "2.1" +python-versions = ">=3.8,<3.12" +content-hash = "a7238a0de599ca36c8b5c96715f0ecc6432e518972a0cc6444e33d636428c905" diff --git a/pyproject.toml b/pyproject.toml index e095fb0..5b34388 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ python = ">=3.8,<3.12" httpx = "*" pydantic = ">=1.10.1" orjson = "^3.7.2" -openapi-pydantic = "^0.4.0" +openapi-pydantic = "^0.5.1" Jinja2 = "^3.1.2" click = "^8.1.3" black = ">=21.10b0" diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index 0ba8775..dfe366a 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -84,10 +84,10 @@ def get_open_api(source: Union[str, Path]) -> Any: if data["openapi"].startswith("3.0"): openapi_python_generator.OPENAPI_VERSION = "3.0" - from openapi_pydantic.v3.v3_0_3.open_api import OpenAPI + from openapi_pydantic.v3.v3_0 import OpenAPI else: openapi_python_generator.OPENAPI_VERSION = "3.1" - from openapi_pydantic.v3.v3_1_0.open_api import OpenAPI + from openapi_pydantic.v3.v3_1 import OpenAPI return OpenAPI(**data) diff --git a/src/openapi_python_generator/language_converters/python/generator.py b/src/openapi_python_generator/language_converters/python/generator.py index 188bae8..cf8d4a2 100644 --- a/src/openapi_python_generator/language_converters/python/generator.py +++ b/src/openapi_python_generator/language_converters/python/generator.py @@ -2,9 +2,9 @@ from openapi_python_generator import OPENAPI_VERSION if OPENAPI_VERSION == "3.0": - from openapi_pydantic.v3.v3_0_3.open_api import OpenAPI + from openapi_pydantic.v3.v3_0 import OpenAPI else: - from openapi_pydantic import OpenAPI + from openapi_pydantic.v3.v3_1 import OpenAPI from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.api_config_generator import ( diff --git a/src/openapi_python_generator/language_converters/python/model_generator.py b/src/openapi_python_generator/language_converters/python/model_generator.py index 3d89e60..ba9cc3e 100644 --- a/src/openapi_python_generator/language_converters/python/model_generator.py +++ b/src/openapi_python_generator/language_converters/python/model_generator.py @@ -32,19 +32,23 @@ from openapi_python_generator.models import Model if openapi_python_generator.OPENAPI_VERSION == "3.0": - from openapi_pydantic.v3.v3_0_3.components import Components - from openapi_pydantic.v3.v3_0_3.reference import Reference - from openapi_pydantic.v3.v3_0_3.path_item import PathItem - from openapi_pydantic.v3.v3_0_3.operation import Operation - from openapi_pydantic.v3.v3_0_3.response import Response - from openapi_pydantic.v3.v3_0_3.schema import Schema + from openapi_pydantic.v3.v3_0 import ( + Components, + Reference, + PathItem, + Operation, + Response, + Schema, + ) else: - from openapi_pydantic import Components - from openapi_pydantic import Reference - from openapi_pydantic import PathItem - from openapi_pydantic import Operation - from openapi_pydantic import Response - from openapi_pydantic import Schema + from openapi_pydantic.v3.v3_1 import ( + Components, + Reference, + PathItem, + Operation, + Response, + Schema, + ) def generate_models( diff --git a/src/openapi_python_generator/language_converters/python/service_generator.py b/src/openapi_python_generator/language_converters/python/service_generator.py index e6028fa..d115fa1 100644 --- a/src/openapi_python_generator/language_converters/python/service_generator.py +++ b/src/openapi_python_generator/language_converters/python/service_generator.py @@ -15,25 +15,29 @@ from openapi_python_generator.language_converters.python.utils import type_converter if openapi_python_generator.OPENAPI_VERSION == "3.0": - from openapi_pydantic.v3.v3_0_3.media_type import MediaType - from openapi_pydantic.v3.v3_0_3.operation import Operation - from openapi_pydantic.v3.v3_0_3.parameter import Parameter - from openapi_pydantic.v3.v3_0_3.path_item import PathItem - from openapi_pydantic.v3.v3_0_3.reference import Reference - from openapi_pydantic.v3.v3_0_3.request_body import RequestBody - from openapi_pydantic.v3.v3_0_3.response import Response - from openapi_pydantic.v3.v3_0_3.schema import Schema - from openapi_pydantic.v3.v3_0_3.components import Components + from openapi_pydantic.v3.v3_0 import ( + MediaType, + Operation, + Parameter, + PathItem, + Reference, + RequestBody, + Response, + Schema, + Components, + ) else: - from openapi_pydantic import MediaType - from openapi_pydantic import Operation - from openapi_pydantic import Parameter - from openapi_pydantic import PathItem - from openapi_pydantic import Reference - from openapi_pydantic import RequestBody - from openapi_pydantic import Response - from openapi_pydantic import Schema - from openapi_pydantic import Components + from openapi_pydantic.v3.v3_1 import ( + MediaType, + Operation, + Parameter, + PathItem, + Reference, + RequestBody, + Response, + Schema, + Components, + ) from openapi_python_generator.language_converters.python import common from openapi_python_generator.language_converters.python.common import normalize_symbol @@ -366,6 +370,7 @@ def generate_service_operation( operation=op, pathItem=path, content="", + base_path=op.servers[0].url if op.servers else "", async_client=async_type, body_param=body_param, path_name=path_name, @@ -380,7 +385,7 @@ def generate_service_operation( if op.tags is not None and len(op.tags) > 0: tag = op.tags[0] if tag is not None: - tag = GoogleTranslator(source="auto", target="en").translate(tag) + # tag = GoogleTranslator(source="auto", target="en").translate(tag) tag = snakecase(tag) so.tag = normalize_symbol(tag) @@ -399,6 +404,9 @@ def generate_service_operation( if op is None: continue + if path.servers: + op.servers = path.servers + if library_config.include_sync: sync_so = generate_service_operation(op, path_name, False) service_ops.append(sync_so) diff --git a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 index db5c5e8..1494911 100644 --- a/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 @@ -1,7 +1,7 @@ async def {{ operation_id }}({{ params }} api_config_override : Optional[APIConfig] = None) -> {% if return_type.type is none or return_type.type.converted_type is none %}None{% else %}{{ return_type.type.converted_type}}{% endif %}: api_config = api_config_override if api_config_override else APIConfig() - base_path = api_config.base_path + base_path = api_config.base_path or "{{ base_path }}" path = f'{{ path_name }}' headers = { 'Content-Type': 'application/json', diff --git a/src/openapi_python_generator/language_converters/python/utils.py b/src/openapi_python_generator/language_converters/python/utils.py index a5973e8..76f76b7 100644 --- a/src/openapi_python_generator/language_converters/python/utils.py +++ b/src/openapi_python_generator/language_converters/python/utils.py @@ -10,13 +10,9 @@ from openapi_python_generator.models import TypeConversion if openapi_python_generator.OPENAPI_VERSION == "3.0": - from openapi_pydantic.v3.v3_0_3.reference import Reference - from openapi_pydantic.v3.v3_0_3.schema import Schema - from openapi_pydantic.v3.v3_0_3.parameter import Parameter + from openapi_pydantic.v3.v3_0 import Reference, Schema, Parameter else: - from openapi_pydantic import Reference - from openapi_pydantic import Schema - from openapi_pydantic import Parameter + from openapi_pydantic.v3.v3_1 import Reference, Schema, Parameter def _generate_property_from_reference( diff --git a/src/openapi_python_generator/models.py b/src/openapi_python_generator/models.py index ea3f4ae..2c4da83 100644 --- a/src/openapi_python_generator/models.py +++ b/src/openapi_python_generator/models.py @@ -7,13 +7,9 @@ import openapi_python_generator if openapi_python_generator.OPENAPI_VERSION == "3.0": - from openapi_pydantic.v3.v3_0_3.operation import Operation - from openapi_pydantic.v3.v3_0_3.path_item import PathItem - from openapi_pydantic.v3.v3_0_3.schema import Schema + from openapi_pydantic.v3.v3_0 import Operation, PathItem, Schema else: - from openapi_pydantic import Operation - from openapi_pydantic import PathItem - from openapi_pydantic import Schema + from openapi_pydantic.v3.v3_1 import Operation, PathItem, Schema class TypeConversion(BaseModel): @@ -38,6 +34,7 @@ class ServiceOperation(BaseModel): operation: Operation pathItem: PathItem content: str + base_path: str = "" async_client: Optional[bool] = False tag: Optional[str] = None path_name: str diff --git a/tests/test_data/openapi.yaml b/tests/test_data/openapi.yaml index fad9c18..294e54f 100644 --- a/tests/test_data/openapi.yaml +++ b/tests/test_data/openapi.yaml @@ -1,22181 +1,16496 @@ openapi: 3.0.1 info: - title: Wildberries API - version: '' + title: Wildberries API + version: '' tags: - - name: Загрузка - description: Создание и редактирование КТ - - name: Просмотр - description: Получение информации о созданных КТ, НМ и размерах - - name: Конфигуратор - - name: Медиафайлы - description: Работа с медиафайлами - - name: Теги - description: Сервис для работы с тегами КТ. Теги предназначены для быстрого поиска КТ в личном кабинете - - name: Корзина - - name: Установка цен и скидок - description: | - - Проверяйте статусы обновлений с помощью методов из раздела [Состояния загрузок](./#tag/Sostoyaniya-zagruzok). У методов может быть ответ Успешно (200), даже если не обновились данные у каких-то товаров или размеров (например, из-за слишком низкой цены или скидки) - - name: Состояния загрузок - description: "Когда вы обновляете цены или скидки, данные по каким-то товарам могут не обновиться. Например, если вы передали неправильную цену или скидку. Проверяйте статус загрузки с помощью метода [Состояние обработанной загрузки](./#tag/Istoriya-zagruzok/paths/~1api~1v2~1history~1tasks/get).\n\nСтатусы загрузки:\n\n * `3`\_— обработана, в товарах нет ошибок, цены и скидки обновились.\n * `4`\_— отменена.\n * `5`\_— обработана, но в\_товарах есть ошибки. Для товаров без ошибок цены и скидки обновились, а ошибки в\_остальных товарах можно получить с\_помощью метода [Детализация обработанной загрузки](./#tag/Sostoyaniya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get).\n * `6`\_— обработана, но\_во всех товарах есть ошибки. Их тоже можно получить с\_помощью метода [Детализация обработанной загрузки](#tag/Sostoyaniya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get).\n\n\nЕсли вы задаёте цены и скидки [в календаре акций](https://seller.wildberries.ru/dp-promo-calendar), загрузка с такими товарами попадает в обработку. Цены и скидки изменятся к началу акции.\n\n\nУ такой загрузки статус `1`, а получить информацию про нее можно с помощью методов [Детализация необработанной загрузки](./#tag/Istoriya-zagruzok/paths/~1api~1v2~1buffer~1goods~1task/get) и [Состояние необработанной загрузки](#tag/Istoriya-zagruzok/paths/~1api~1v2~1buffer~1tasks/get)\n\n
\n

У загрузки не может быть статуса 2.

\n
\n" - - name: Списки товаров - - name: Цены - - name: Промокоды и скидки - - name: Информация для формирования поставок - description: Получение информации для формирования поставок на склады Wildberries - - name: Сборочные задания - description: | - Публичный API Marketplace создано для синхронизации данных между серверами Wildberries и серверами продавцов. -
Вы загружаете данные на свои носители, работаете с ними на своих мощностях и синхронизируетесь с нашими серверами по мере необходимости. -
-
Ограничения по запросам: -
Метод PATCH `api/v3/supplies/{supplyId}/orders/{orderId}` "Добавить сборочное задание к поставке" - 1 000 запросов в минуту. -
Методы -
PUT `/api/v3/orders/{orderId}/meta/uin` "Закрепить за сборочным заданием УИН" -
PUT `/api/v3/orders/{orderId}/meta/imei` "Закрепить за сборочным заданием IMEI" -
PUT `/api/v3/orders/{orderId}/meta/gtin` "Закрепить за сборочным заданием GTIN" -
PUT `/api/v3/orders/{orderId}/meta/sgtin` "Закрепить за сборочным заданием КиЗ (маркировку Честного знака)" -
- суммарно 1 000 запросов в минуту. -
Остальные методы - 300 запросов в минуту, в целом. -
`Не допускается использование API Marketplace в качестве внешней базы данных.` - -
-
Словарь сокращений:
-
ПВЗ - пункт выдачи заказов
-
КИЗ - контрольный идентификационный знак
-
ИС "МДЛП" - информационная система мониторинга движения лекарственных препаратов
-
СЦ - сортировочный центр
-
- - - Описание основных ошибок в Marketplace: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
КодОписание
InternalServerErrorВнутренняя ошибка сервера
UnauthorizedПользователь не авторизован
AccessDeniedДоступ запрещён
IncorrectRequestBodyНекорректное тело запроса
IncorrectRequestПереданы некорректные данные
NotFoundНе найдено
UploadDataLimitПревышен лимит загружаемых данных
SubjectDBSRestrictionКатегория товара недоступна для продажи по схеме 'Везу на склад Wildberries'
SubjectFBSRestrictionКатегория товара недоступна для продажи по схеме 'Везу самостоятельно до покупателя'
CargoWarehouseRestrictionВыбранный склад не предназначен для крупногабаритных товаров. Добавьте их на соответствующий склад
IncorrectParameterПередан некорректный параметр
SupplyHasOrdersНе удалось обработать поставку. Убедитесь, что за ней не осталось закреплённых сборочных заданий
SupplyHasZeroOrdersНе удалось обработать поставку. Убедитесь, что за ней закреплено хотя бы одно сборочное задание
SupplyHasEmptyTrbxВ поставке есть пустые короба. Удалите их или вернитесь к распределению товаров
FailedToAddSupplyOrderНе удалось закрепить сборочное задание за поставкой. Убедитесь, что сборочное задание и поставка удовлетворяют всем необходимым требованиям
StatusChangeNotAllowedЗадание перейдёт в завершенные после сканирования на ПВЗ
StatusMismatchНесоответствие статусов, проверьте их правильность
SupplyNotClosedПоставка не передана в доставку
PassValidationError*причина*
SupplierBannedПользователь заблокирован: *причина*
- - name: Поставки - description: | - Порядок работы: - -
1. Создайте новую поставку с помощью метода **POST** */api/v3/supplies*. В ответ вернется идентификатор созданной поставки в формате "WB-GI-1234567". -
2. В текущую новую поставку нужно добавить сборочные задания, которые вы повезёте на склад или ПВЗ, методом **PATCH** */api/v3/supplies/{supplyId}/orders/{orderId}*. Обратите внимание, что при добавлении сборочных заданий к поставке они будут переведены в статус confirm ("На сборке"). -
`Примечание`: пункты 3 - 8 обязательны к выполнению при доставке поставки на ПВЗ. -
3. В поставке создайте короб методом **POST** */api/v3/supplies/{supplyId}/trbx*. -
4. Добавьте заказы в короб методом **PATCH** */api/v3/supplies/{supplyId}/trbx/{trbxId}*. -
5. Список коробов с заказами можно получить методом **GET** */api/v3/supplies/{supplyId}/trbx*. -
6. Получите стикеры коробов методом **POST** */api/v3/supplies/{supplyId}/trbx/stickers*, распечатайте и наклейте стикеры на короба согласно распределённым в них заказам. -
7. Вы можете удалить короба из поставки методом **DELETE** */api/v3/supplies/{supplyId}/trbx*. Обратите внимание, что удалить короба из поставки можно, только пока поставка находится на сборке. -
8. Вы можете удалить заказы из короба методом **DELETE** */api/v3/supplies/{supplyId}/trbx/{trbxId}/orders/{orderId}*. Обратите внимание, что удалить заказы из короба можно, только пока поставка находится на сборке. -
9. После того как поставка будет укомплектована нужными сборочными заданиями, необходимо ее передать в доставку с помощью метода **PATCH** */api/v3/supplies/{supplyId}/deliver*. Обратите внимание, что при передаче сборочных заданий в доставку они будут автоматически собраны, т.е. переведены в статус complete ("В доставке"). -
10. Список сборочных заданий, добавленных к поставке, можно получить методом **GET** */api/v3/supplies/{supplyId}/orders*. -
11. Все поставки, имеющиеся у продавца, можно получить методом **GET** */api/v3/supplies*. -
12. Детализацию конкретной поставки можно получить методом **GET** */api/v3/supplies/{supplyId}*. -
13. С помощью метода **DELETE** */api/v3/supplies/{supplyId}* можно удалить поставку при условии, что она активна и за ней не закреплено ни одно сборочное задание. -
14. Если поставка была отсканирована в пункте приёмки, но при этом в ней имеются ещё неотсканированные товары, то спустя определенное время необходимо доставить их повторно. Все сборочные задания, требующие повторной отгрузки на данный момент, можно получить с помощью метода GET /api/v3/supplies/orders/reshipment. При помощи метода PATCH /api/v3/supplies/{id поставки}/orders/{id сборочного задания} данные сборочные задания можно перевести в другую активную поставку (сборочное задание также будет переведено в статус confirm ("На сборке")). -
15. Метод **PATCH** */api/v3/supplies/{supplyId}/orders/{orderId}* также позволяет перемещать сборочные задания между активными поставками. Обратите внимание, что нельзя перемещать сборочное задание из уже закрытой поставки, только если оно не требует повторной отгрузки. -
16. QR-код поставки можно получить методом **GET** */api/v3/supplies/{supplyId}/barcode* в формате svg, zpl или png. Доступно только после передачи поставки в доставку. - - name: Остатки - description: Допускается максимум 300 запросов в минуту на методы Marketplace в целом - - name: Склады - description: Допускается максимум 300 запросов в минуту на методы Marketplace в целом - - name: Пропуска - description: Допускается максимум 300 запросов в минуту на методы Marketplace в целом - - name: Статистика - description: | - Методы статистики
Лимит по запросам: один запрос одного метода в минуту.

Инструкция: Сохранение статистики в Excel - - name: Воронка продаж - description: | - **Таймзоны** - - Формат IANA, актуальный список можно посмотреть [здесь](https://nodatime.org/TimeZones). - - name: Товары с обязательной маркировкой - - name: Платное хранение - description: | - Чтобы получить отчёт: - - 1. Создайте его с помощью метода [Создать отчёт](./#tag/Otchyot-o-platnom-hranenii/paths/~1api~1v1~1delayed-gen~1paid_storage/get). - 2. Дождитесь, когда отчёт будет готов. Готовность можно узнать с помощью метода [Проверить статус](./#tag/Otchyot-o-platnom-hranenii/paths/~1api~1v1~1%7Btask_type%7D~1tasks~1%7Btask_id%7D~1status/get). Готовый отчёт хранится 2 часа, после его нельзя будет получить. - 3. Загрузите отчёт с помощью метода [Получить отчёт](./#tag/Otchyot-o-platnom-hranenii/paths/~1api~1v1~1%7Btask_type%7D~1tasks~1%7Btask_id%7D~1download/get). - - name: Воронка продаж (Джем) - description: | - Вы можете использовать эти методы только с подпиской [Джем](https://seller.wildberries.ru/dynamic-product-categories/jam). - - Чтобы получить отчёт: - 1. Сгенерируйте его с помощью метода метода [Создать отчёт](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads/post). - 2. Дождитесь, когда отчёт будет готов. Готовность можно узнать с помощью метода [Получить список отчётов](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads/get). Готовый отчёт хранится 48 часов, потом его нельзя будет получить.
- Если вы получили статус FAILED, [сгенерируйте отчёт повторно](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads~1retry/post) - 3. [Получите отчёт](./#tag/Voronka-prodazh-(Dzhem)/paths/~1api~1v2~1nm-report~1downloads~1file~1%7BdownloadId%7D/get). - - Можно получить отчёт максимум за год. - - - Максимальное количество генерируемых отчётов в сутки — 20. - - name: Отчёты по удержаниям - - name: Продвижение - - name: Ставки - - name: Активность кампании - - name: Финансы - - name: Управление общими параметрами кампании - - name: "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - - name: Управление параметрами автоматических кампаний - - name: Словари - - name: Статистика - - name: Медиа - description: Публичный API для работы с медиакампаниями - - name: Рекомендации - description: | - Взаимодействие с сервисом для формирования выдачи карусели "с этим товаром рекомендуют" в карточке товара и дополнения карусели продавцами на портале продавцов. - - name: Вопросы - - name: Отзывы - - name: Шаблоны для вопросов и отзывов - description: | - Данный раздел содержит методы, которые позволяют создавать, получать, редактировать и удалять шаблоны ответов на вопросы и отзывы.

`Важно!` Дифференциация большей части ответов по статус-коду не предусмотрена.
На некорректный запрос Вы получите ответ со статус-кодом 200 и описанием ошибки. + - name: Categories, Subjects, and Characteristics + description: '' + - name: Creating Product Cards + description: '' + - name: Product Cards + description: '' + - name: Media Files + description: '' + - name: Tags + description: '' + - name: Prices and Discounts + description: '' + - name: Seller Warehouses + description: '' + - name: Inventory + description: '' + - name: Assembly Orders + description: '' + - name: Metadata + description: '' + - name: FBS Supplies + description: '' + - name: Passes + description: '' + - name: WB Courier Delivery (DBW) + description: '' + - name: Campaigns + description: '' + - name: Campaigns Creation + description: '' + - name: Campaigns Management + description: '' + - name: Finances + description: '' + - name: Campaigns Parameters + description: '' + - name: Media + description: '' + - name: Promotions Calendar + description: '' + - name: Questions + description: '' + - name: Feedbacks + description: '' + - name: Response Templates + description: '' + - name: Buyers Chat + description: '' + - name: Buyers Returns + description: '' paths: - /content/v2/cards/upload: - servers: - - url: https://suppliers-api.wildberries.ru - post: - tags: - - Загрузка - summary: Создание карточки товара - description: "Создание карточки товара происходит асинхронно, при отправке запроса на создание карточки ваш запрос становится в очередь на создание.\n\n\n**Внимание**. Карточка считается созданной, если создалась хотя бы одна номенклатура в ней. Если во время обработки запроса в очереди выявляются ошибки, то номенклатура считается ошибочной.\n\n\nКак создать карточку:\n\n 1. Получите список всех категорий с помощью метода `Родительские категории товаров`\n 2. Получите список доступных предметов (подкатегорий) с помощью метода `Список предметов (подкатегорий)`\n 3. Получите характеристики, которые можно задавать в этом предмете (подкатегории), с помощью метода `Характеристики предмета (подкатегории)`. Для характеристик Цвет, Страна производства, Сезон, Ставка НДС, ТНВЭД используйте значения из раздела `Конфигуратор`.\n 4. Отправьте запрос. Если ответ Успешно (200), но какие-то карточки не\_создались, проверьте ошибки с\_помощью метода `Список несозданных номенклатур (НМ) с ошибками`.\n \n\nВ одном запросе можно создать максимум 100\_карточек\_(`imtID`) и по\_30 номенклатур\_(`nmID`) в\_каждой. Максимальный размер запроса 10 Мб.\n\nГабариты товаров можно указать только в **сантиметрах**.\n" - requestBody: - content: - application/json: - schema: - type: array - items: - type: object - required: - - subjectID - - variants - properties: - subjectID: - type: integer - description: ID предмета - variants: - description: Массив вариантов товара. В каждой КТ может быть не более 30 вариантов (НМ) - type: array - items: - type: object - required: - - vendorCode - properties: - brand: - type: string - description: Бренд - title: - type: string - description: Наименование товара - description: - type: string - description: | - Описание товара. Максимальное количество символов зависит от категории товара. Стандарт — 2000, минимум — 1000, максимум — 5000.
- Подробно о правилах описания в **Правилах заполнения карточки товара** в разделе [Инструкции](https://seller.wildberries.ru/training) на портале продавцов. - vendorCode: - type: string - description: Артикул продавца - dimensions: - description: | - Габариты упаковки товара. Указывать в **сантиметрах** для любого товара. -
- Если не указать структуру dimensions в запросе, то она сгенерируется системой автоматически с нулевыми значениями длины, ширины, высоты - type: object - properties: - length: - type: integer - description: Длина, см - width: - type: integer - description: Ширина, см - height: - type: integer - description: Высота, см - sizes: - type: array - description: | - Массив с размерами.
- Если для размерного товара (обувь, одежда и др.) не указать этот массив, то системой в карточке он будет сгенерирован автоматически с `techSize` = "A" и `wbSize` = "1" и баркодом. - items: - type: object - properties: - techSize: - type: string - description: Размер товара (XL, 45 и др.) - wbSize: - type: string - description: Российский размер товара - price: - type: integer - description: Цена товара - skus: - type: array - items: - type: string - description: Баркод. Если не указать, сгенерируется системой автоматически. - characteristics: - type: array - description: Массив характеристик товара - items: - type: object - required: - - id - - value - properties: - id: - type: integer - description: Идентификатор характеристики - value: - description: Значение характеристики. Тип значения зависит от типа характеристики - examples: - creatingOneCard: - $ref: '#/components/examples/creatingOneCard' - creatingMergedCards: - $ref: '#/components/examples/creatingMergedCards' - creatingGroupOfIndividualCards: - $ref: '#/components/examples/creatingGroupOfIndividualCards' - responses: - '200': - description: Успех - content: - application/json: - schema: - $ref: '#/components/schemas/responseCardCreate' - example: - data: null - error: false - errorText: '' - additionalErrors: {} - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - examples: - InvalidRequestFormatContent: - $ref: '#/components/examples/InvalidRequestFormatContent' - CardCreatedWithoutVendorCode: - $ref: '#/components/examples/CardCreatedWithoutVendorCode' - CardsVendorCodeUsedInOtherCards: - $ref: '#/components/examples/CardsVendorCodeUsedInOtherCards' - ThisCategoryDoesNotExist: - $ref: '#/components/examples/ThisCategoryDoesNotExist' - '413': - description: Превышен лимит объёма данных в запросе - content: - application/json: - schema: - type: string - examples: - BodySizeExceedsTheGivenLimit: - $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' - /content/v2/cards/update: - servers: - - url: https://suppliers-api.wildberries.ru - post: - tags: - - Загрузка - summary: Редактирование КТ - description: "Обновляет карточку товара. Данные для обновления можно получить с помощью метода [Список номенклатур (НМ)](./#tag/Prosmotr/paths/~1content~1v2~1get~1cards~1list/post)\n\nНельзя редактировать или удалить баркоды, но можно добавить баркод к\_существующему. Параметры `photos`, `video` и `tags` передавать не обязательно, их нельзя редактировать или удалять в этом методе.\n\nЕсли ответ Успешно (200), но какие-то карточки не\_изменились, проверьте ошибки с\_помощью метода `Список несозданных номенклатур (НМ) с ошибками`.\n\nВ одном запросе можно отредактировать максимум 3000\_номенклатур\_(`nmID`). Максимальный размер запроса 10 Мб.\n\nГабариты товаров можно указать только в **сантиметрах**.\n" - requestBody: - content: - application/json: - schema: - type: array - items: - type: object - required: - - nmID - - vendorCode - - sizes - properties: - nmID: - type: integer - description: Артикул WB - vendorCode: - type: string - description: Артикул продавца - brand: - type: string - description: Бренд - title: - type: string - description: Наименование товара - description: - type: string - description: | - Описание товара. Максимальное количество символов зависит от категории товара. Стандарт — 2000, минимум — 1000, максимум — 5000.
- Подробно о правилах описания в **Правилах заполнения карточки товара** в разделе [Инструкции](https://seller.wildberries.ru/training) на портале продавцов. - dimensions: - description: | - Габариты упаковки товара. Указывать в **сантиметрах** для любого товара. - type: object - properties: - length: - type: integer - description: Длина, см - width: - type: integer - description: Ширина, см - height: - type: integer - description: Высота, см - characteristics: - description: Характеристики товара - type: array - items: - type: object - properties: - id: - type: integer - description: ID характеристики - value: - description: Значение характеристики. Тип значения зависит от типа характеристики. - sizes: - type: array - description: | - Массив размеров артикула.
Для безразмерного товара все равно нужно передавать данный массив без параметров (wbSize и techSize), но с баркодом. - items: - type: object - properties: - chrtID: - type: integer - description: | - Числовой идентификатор размера для данного артикула Wildberries - Обязателен к заполнению для существующих размеров. - Для добавляемых размеров не указывается. - techSize: - type: string - description: Размер товара (XL, S, 45 и др.) - wbSize: - type: string - description: Российский размер товара - skus: - type: array - items: - type: string - description: Баркод - example: - - nmID: 11111111 - vendorCode: wbiz72wmro - brand: '' - title: Свитер женский оверсайз с горлом - description: '12345' - dimensions: - length: 0 - width: 0 - height: 0 - characteristics: - - id: 14177450 - value: - - хлопок 50% акрил 50% - - id: 50 - value: - - свободный крой - sizes: - - chrtID: 12345678 - techSize: ONE SIZE - wbSize: 78-90 - skus: - - '123487653460134' - responses: - '200': - description: Карточка обновлена - content: - application/json: - schema: - $ref: '#/components/schemas/responseCardCreate' - example: - data: null - error: false - errorText: '' - additionalErrors: {} - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - '413': - description: Превышен лимит объёма данных в запросе - content: - application/json: - schema: - type: string - examples: - BodySizeExceedsTheGivenLimit: - $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' - /content/v2/cards/upload/add: - servers: - - url: https://suppliers-api.wildberries.ru - post: - tags: - - Загрузка - summary: Добавление НМ к КТ - description: | - Метод позволяет добавить к карточке товара новую номенклатуру. new
- Добавление НМ к КТ происходит асинхронно, после отправки запрос становится в очередь на обработку.
- `Важно!` Если после успешной отправки запроса номенклатура не создалась, то необходимо проверить раздел "Список несозданных НМ с ошибками".
- Для того чтобы убрать НМ из ошибочных, необходимо повторно сделать запрос с исправленными ошибками.
- Максимальный размер запроса 10 Мб. - - Габариты товаров можно указать только в **сантиметрах**. - requestBody: - content: - application/json: - schema: - type: object - properties: - imtID: - type: integer - description: imtID КТ, к которой добавляется НМ - cardsToAdd: - description: Структура добавляемой НМ - type: array - items: - type: object - required: - - vendorCode - properties: - brand: - type: string - description: Бренд - vendorCode: - type: string - description: Артикул продавца - title: - type: string - description: Наименование товара - description: - type: string - description: | - Описание товара. Максимальное количество символов зависит от категории товара. Стандарт — 2000, минимум — 1000, максимум — 5000.
- Подробно о правилах описания в **Правилах заполнения карточки товара** в разделе [Инструкции](https://seller.wildberries.ru/training) на портале продавцов. - dimensions: - description: | - Габариты упаковки товара. Указывать в **сантиметрах** для любого товара. -
- Если не указать структуру dimensions в запросе, то она сгенерируется системой автоматически с нулевыми значениями длины, ширины, высоты - type: object - properties: - length: - type: integer - description: Длина, см - width: - type: integer - description: Ширина, см - height: - type: integer - description: Высота, см - characteristics: - description: Характеристики товара - type: array - items: - type: object - properties: - id: - type: integer - description: ID характеристики - value: - description: Значение характеристики. Тип значения зависит от типа характеристики - sizes: - type: array - description: | - Массив с размерами.
- Если для размерного товара (обувь, одежда и др.) не указать этот массив, то системой в карточке он будет сгенерирован автоматически с `techSize` = "A" и `wbSize` = "1" и баркодом. - items: - type: object - properties: - techSize: - type: string - description: Размер товара (XL, 42 и др.) - wbSize: - type: string - description: Российский размер товара - price: - type: integer - description: Цена товара - skus: - description: Баркод - type: array - items: - type: string - example: - imtID: 987654321 - cardsToAdd: - - vendorCode: myVariant1 - title: Наименование товара - description: Описание товара - brand: Бренд - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Russian flag - - id: 25471 - value: 1300 - - id: 14177449 - value: - - blue - sizes: - - skus: - - '12345678' - - vendorCode: myVariant2 - title: Наименование товара - description: Описание товаров - brand: Бренд - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Russian flag - - id: 25471 - value: 1300 - - id: 14177449 - value: - - blue - sizes: - - skus: - - '222222222222' - responses: - '200': - description: Успех - content: - application/json: - schema: - $ref: '#/components/schemas/responseCardCreate' - example: - data: null - error: false - errorText: '' - additionalErrors: {} - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - examples: - InvalidRequestFormatContent: - $ref: '#/components/examples/InvalidRequestFormatContent' - CardCreatedWithoutVendorCode: - $ref: '#/components/examples/CardCreatedWithoutVendorCode' - CardsVendorCodeUsedInOtherCards: - $ref: '#/components/examples/CardsVendorCodeUsedInOtherCards' - ThisCategoryDoesNotExist: - $ref: '#/components/examples/ThisCategoryDoesNotExist' - '413': - description: Превышен лимит объёма данных в запросе - content: - application/json: - schema: - type: string - examples: - BodySizeExceedsTheGivenLimit: - $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' - /content/v2/cards/moveNm: - servers: - - url: https://suppliers-api.wildberries.ru - post: - tags: - - Загрузка - summary: Объединение / Разъединение НМ - description: | - Метод позволяет объединять номенклатуры (`nmID`) под одним `imtID` и разъединять их.
- - Для объединения НМ необходимо отправить запрос со списком НМ с заполненным параметром `targetIMT` в теле запроса. - При этом все НМ объединятся под `imtID` указанном в `targetIMT`.
-
- Чтобы отсоединить НМ от карточки, необходимо передать эту НМ без параметра `targetIMT` в теле запроса.
- При этом для передаваемой НМ создается новый `imtID`.
- Если в запросе на разъединение передается несколько НМ, то все они автоматически объединятся под одним новым `imtID`.
- Чтобы присвоить каждой НМ уникальный `imtID` необходимо передавать по одной НМ за запрос. - Для НМ, не участвующих в запросе, никаких изменений не происходит.
- Максимальный размер запроса 10 Мб.
-
- `ВАЖНО:` Объединить можно только номенклатуры с одинаковыми предметами.
- `ВАЖНО:` В одной КТ (под одним `imtID`) не может быть больше 30 номенклатур (`nmID`). - requestBody: - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/requestMoveNmsImtConn' - - $ref: '#/components/schemas/requestMoveNmsImtDisconn' - responses: - '200': - description: Успех - content: - application/json: - schema: - $ref: '#/components/schemas/responseCardCreate' - example: - data: null - error: false - errorText: '' - additionalErrors: {} - '400': - description: Некорректный формат запроса - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/responseContentError1' - - $ref: '#/components/schemas/responseCardCreate' - - $ref: '#/components/schemas/responseIncorrectDate' - examples: - responseExceededLimit: - $ref: '#/components/examples/responseExceededLimit' - responseCombining: - $ref: '#/components/examples/responseCombining' - responseIncorrectRequestFormat: - $ref: '#/components/examples/responseIncorrectRequestFormat' - responseNonExistentNmId: - $ref: '#/components/examples/responseNonExistentNmId' - responseNonExistentImt: - $ref: '#/components/examples/responseNonExistentImt' - responseCardCreate1: - $ref: '#/components/examples/responseCardCreate1' - responseDuplicateRequests: - $ref: '#/components/examples/responseDuplicateRequests' - responseAllCardsInSameGroup: - $ref: '#/components/examples/responseAllCardsInSameGroup' - responseIncorrectBeginDate: - $ref: '#/components/examples/responseIncorrectBeginDate' - responseIncorrectEndDate: - $ref: '#/components/examples/responseIncorrectEndDate' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseCardCreate' - '413': - description: Превышен лимит объёма данных в запросе - content: - application/json: - schema: - type: string - examples: - BodySizeExceedsTheGivenLimit: - $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/responseCardCreate' - /content/v2/barcodes: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Генерация баркодов - description: Метод позволяет сгенерировать массив уникальных баркодов для создания размера НМ в КТ. - tags: - - Загрузка - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - count: - description: Кол-во баркодов которые надо сгенерировать, максимальное доступное количество баркодов для генерации - `5 000` - type: integer - example: 100 - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - description: Массив сгенерированных баркодов - type: array - items: + /content/v2/object/parent/all: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Products parent categories + description: | + Returns the list of all products parent categories + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + description: Product name language (`ru`, `en`, `zh`) + schema: type: string - example: '5032781145187' - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/get/cards/list: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - tags: - - Просмотр - summary: Список номенклатур (НМ) - description: | - Метод позволяет получить список созданных НМ с фильтрацией по разным параметрам, пагинацией и сортировкой. -
*Важно*. Карточки, находящиеся в корзине, в ответе метода не выдаются.
Получить такие карточки можно только методом "Список НМ, находящихся в корзине".

Порядок работы с `get/cards/list`:
Чтобы получить полный список номенклатур, если их больше 100, необходимо воспользоваться пагинацией. -
    -
  1. Сделать первый запрос (все указанные ниже параметры обязательны):
    -
    -                {
    -                  "settings": {                      
    -                    "cursor": {
    -                      "limit": 100
    -                    },
    -                    "filter": {
    -                      "withPhoto": -1
    -                    }
    -                  }
    -                }
    -
  2. -
  3. Пройти в конец полученного списка номенклатур, скопировать из cursor две строки: -
      -
    • "updatedAt": "***",
    • -
    • "nmID": ***,
    • -
    -
  4. Вставить скопированные строки в cursor запроса, повторить вызов метода.
  5. -
  6. Повторять пункты 2 и 3, пока total в ответе не станет меньше чем limit в запросе. -
    Это будет означать, что Вы получили все карточки. -
-
По желанию можно добавить поиск и сортировку. См описание в Request Body schema -
В Request samples представлен пример запроса со всеми возможными параметрами. - parameters: - - name: locale - in: query - schema: - type: string - example: ru - description: "Язык для перевода полей ответа `name`, `value` и `object`: `ru` - русский, `en` - английский, `zh` - китайский.\n\nНе\_используется в\_песочнице. \n" - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - settings: - type: object - description: Настройки - properties: - sort: - description: Параметр сортировки - type: object - properties: - ascending: - type: boolean - description: Сортировать по полю **updatedAt** (`false` - по убыванию, `true` - по возрастанию) - filter: - description: Параметры фильтрации - type: object - properties: - withPhoto: - type: integer - description: "Фильтр по\_фото:\n \n * `0`\_— только карточки без фото\n * `1`\_— только карточки с\_фото\n * `-1`\_— все карточки товара\n" - textSearch: - type: string - description: Поиск по артикулу продавца, артикулу WB, баркоду - tagIDs: - type: array - description: Поиск по ID тегов - items: - type: integer - allowedCategoriesOnly: - description: "Фильтр по категории. `true` - только разрешённые, `false` - все. Не\_используется в\_песочнице." - type: boolean - objectIDs: - type: array - description: Поиск по id предметов - items: - type: integer - brands: - type: array - description: Поиск по брендам - items: - type: string - imtID: - description: Поиск по идентификатору КТ - type: integer - cursor: - description: | - Курсор - type: object - properties: - limit: - type: integer - description: Сколько КТ выдать в ответе. - example: - settings: - sort: - ascending: false - filter: - textSearch: '' - allowedCategoriesOnly: true - tagIDs: [] - objectIDs: [] - brands: [] - imtID: 0 - withPhoto: -1 - cursor: - updatedAt: '' - nmID: 0 - limit: 11 - responses: - '200': - description: Ответ - content: - application/json: - schema: - type: object - properties: - cards: - type: array - description: Список КТ - items: - type: object - properties: - nmID: - type: integer - description: Артикул WB - imtID: - type: integer - description: Идентификатор КТ.
Артикулы WB из одной КТ будут иметь одинаковый imtID - nmUUID: - type: string - format: uuid - description: Внутренний технический идентификатор товара - subjectID: - type: integer - description: Идентификатор предмета - vendorCode: - type: string - description: Артикул продавца - subjectName: - type: string - description: Название предмета - brand: - type: string - description: Бренд - title: - type: string - description: Наименование товара - photos: - type: array - description: Массив фото - items: + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + items: + type: object + properties: + name: + description: Category name + type: string + example: Электроника + id: + description: Parent category ID + type: integer + example: 479 + isVisible: + description: Visibility on the site + type: boolean + example: true + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description + type: string + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: string + example: '' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/object/all: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Subjects list + description: | + Returns the list of all available subjects, subjects parent categories and their IDs + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + schema: + type: string + example: en + description: Product name language (`ru`, `en`, `zh`) + - name: name + in: query + schema: + type: string + example: Socks + description: Search by item name (Socks), the search works by substring and can be conducted in any of the supported languages + - name: limit + in: query + schema: + type: integer + example: 1000 + default: 30 + description: Number of search results, maximum 1,000 + - name: offset + in: query + schema: + type: integer + example: 5000 + default: 0 + description: How many results to skip + - name: parentID + in: query + schema: + type: integer + example: 1000 + description: Subject parent category ID + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Categories and subjects + items: + type: object + properties: + subjectID: + type: integer + description: Subject ID + parentID: + type: integer + description: Category ID + subjectName: + type: string + description: Subject name + parentName: + type: string + description: Category name + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error text + additionalErrors: + nullable: true + description: Additional errors + type: string + example: + data: + - subjectID: 2560 + parentID: 479 + subjectName: 3D очки + parentName: Электроника + - subjectID: 1152 + parentID: 858 + subjectName: 3D-принтеры + parentName: Оргтехника + error: false + errorText: '' + additionalErrors: null + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/object/charcs/{subjectId}: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Subject characteristics + description: | + Returns list of the subject characteristics by its ID + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: subjectId + in: path + required: true + description: Subject ID + schema: + type: integer + example: 105 + - name: locale + in: query + description: Language of `subjectName` and `name` (ru, en, zh) + schema: + type: string + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Data + items: + type: object + properties: + charcID: + type: integer + description: Characteristics ID + subjectName: + type: string + description: Subject name + subjectID: + type: integer + description: Subject ID + name: + type: string + description: Characteristic name + required: + type: boolean + description: Characteristic required + unitName: + type: string + description: Unit (sm, gr and others) + maxCount: + type: integer + description: | + Max count of values that can be assigned to this characteristic. +
zero means no limit. + popular: + description: The characteristic is popular with users + type: boolean + charcType: + type: integer + description: Characteristic type (1 and 0 - string or list of strings; 4 - number or list of numbers + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error description + additionalErrors: + type: string + description: Additional errors + nullable: true + example: + data: + - charcID: 54337 + subjectName: Кроссовки + subjectID: 105 + name: Размер + required: false + unitName: см + maxCount: 0 + popular: false + charcType: 4 + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/directory/colors: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Color + description: | + Provides values of color characteristic. + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + description: | + Language of `subjectName` and `name` (ru, en, zh) + schema: + type: string + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + items: + type: object + properties: + name: + description: Color name + type: string + example: персиковый мелок + parentName: + description: Parent color name + type: string + example: оранжевый + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description + type: string + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: string + example: '' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/directory/kinds: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Gender + description: | + Provides values of gender characteristic. + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + description: Language of `subjectName` and `name` (ru, en, zh) + schema: + type: string + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + description: List of values for sex characteristic. + type: array + items: + type: string + example: Мужской + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description + type: string + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: string + example: '' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/directory/countries: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Country of origin + description: | + Provides value of characteristic country of origin. + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + description: | + Language of `subjectName` and `name` (ru, en, zh) + schema: + type: string + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + items: + type: object + properties: + name: + description: Value of characteristic country of origin + type: string + example: Китай + fullName: + description: Full country name + type: string + example: Китайская Народная Республика + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description + type: string + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: string + example: '' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/directory/seasons: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Season + description: | + Provide values of season characteristic + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + description: Language of `subjectName` and `name` (ru, en, zh) + schema: + type: string + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + description: Array of values for season characteristic. + type: array + items: + type: string + example: демисезон + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description + type: string + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: string + example: '' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/directory/vat: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: VAT rate + description: | + Returns a list of values for the **VAT rate** characteristic + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: locale + in: query + description: Language of the `data` elements values (`ru`, `en`, `zh`). Not used in the sandbox + schema: + type: string + example: ru + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: string + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error text + additionalErrors: + nullable: true + type: string + description: Additional errors + example: + data: + - '0' + - '10' + - '20' + - Без НДС + - '13' + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/directory/tnved: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: HS codes + description: | + Method provides list of HS codes by category name and filter by HS code. + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Categories, Subjects, and Characteristics + parameters: + - name: subjectID + in: query + required: true + description: Subject ID + schema: + type: integer + example: 105 + - name: search + in: query + description: Search by HS code. Works only with the subjectID parameter + schema: + type: integer + example: 6106903000 + - name: locale + in: query + description: Language (`ru`, `en`, `zh`) of the `subjectName` and `name` fields values. Not used in a sandbox + schema: + type: string + example: en + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + description: Data + type: array + items: + type: object + properties: + tnved: + type: string + description: HS code + isKiz: + type: boolean + description: | + - `true` - labeling code is required + - `false` - labeling code is not required + error: + type: boolean + description: Error flag + example: false + errorText: + type: string + description: Error description + additionalErrors: + nullable: true + type: string + description: Additional errors + example: + data: + - tnved: '6106903000' + isKiz: true + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/tags: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Tags list + description: | + Returns seller's tags list + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Tags + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + properties: + id: + description: Numeric tag identifier + type: integer + color: + description: Tag color + type: string + name: + description: Tag name + type: string + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description + type: string + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: string + example: '' + example: + data: + - id: 1 + color: D1CFD7 + name: Sale + error: false + errorText: '' + additionalErrors: '' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/tag: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Create a tag + description: | + Creates a tag. + + It is possible to create 15 tags. + + The maximum length of a tag is 15 characters + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Tags + requestBody: + required: true + content: + application/json: + schema: type: object properties: - big: - description: URL фото `900х1200` - type: string - c246x328: - description: URL фото `248х328` - type: string - c516x688: - description: URL фото `516х688` - type: string - square: - description: URL фото `600х600` - type: string - tm: - description: URL фото `75х100` - type: string - video: - type: string - description: URL видео - dimensions: - description: Габариты упаковки товара, см - type: object - properties: - length: - type: integer - description: Длина, см - width: - type: integer - description: Ширина, см - height: - type: integer - description: Высота, см - characteristics: - type: array - description: Характеристики - items: + color: + description: | + Tag color. +
+
Available colors:
+
D1CFD7 - grey
+
FEE0E0 - red
+
ECDAFF - purple
+
E4EAFF - blue
+
DEF1DD - green
+
FFECC7 - yellow
+
+ type: string + example: D1CFD7 + name: + description: Tag name + type: string + example: Sale + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError6' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + '400': + description: Bad request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseBodyContentError400' + - $ref: '#/components/schemas/responseContentError4' + - $ref: '#/components/schemas/responseContentError6' + examples: + responseBodyContentError400: + $ref: '#/components/examples/responseBodyContentError400' + responseBody400LenName: + $ref: '#/components/examples/responseBody400LenName' + responseBodyLimitTag: + $ref: '#/components/examples/responseBodyLimitTag' + responseBodyNameNotExist: + $ref: '#/components/examples/responseBodyNameNotExist' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/tag/{id}: + servers: + - url: https://content-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + summary: Update the tag + description: | + Changes tag data: name and color + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Tags + parameters: + - name: id + in: path + schema: + type: integer + example: 1 + description: Numeric tag ID + required: true + requestBody: + required: true + content: + application/json: + schema: type: object properties: - id: - type: integer - description: Идентификатор характеристики - name: - type: string - description: Название характеристики - value: - description: Значение характеристики. Тип значения зависит от типа характеристики - sizes: - type: array - description: Размеры товара - items: + color: + description: Tag color + type: string + example: D1CFD7 + name: + description: Tag name + type: string + example: Sale + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseContentError6' + - $ref: '#/components/schemas/responseContentError4' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + responseNotFound200: + $ref: '#/components/examples/responseNotFound200' + '400': + description: Bad request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseBodyContentError400' + - $ref: '#/components/schemas/responseContentError4' + examples: + responseBodyContentError400: + $ref: '#/components/examples/responseBodyContentError400' + responseBody400LenName: + $ref: '#/components/examples/responseBody400LenName' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + summary: Delete the tag + description: | + Deletes the tag + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Tags + parameters: + - name: id + in: path + schema: + type: integer + example: 1 + description: Numeric tag ID + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseContentError6' + - $ref: '#/components/schemas/responseContentError5' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + responseNotFound200Del: + $ref: '#/components/examples/responseNotFound200Del' + '400': + description: Bad request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseBodyContentError400' + - $ref: '#/components/schemas/responseContentError5' + examples: + responseBodyContentError400: + $ref: '#/components/examples/responseBodyContentError400' + responseBodyTagNotExist: + $ref: '#/components/examples/responseBodyTagNotExist' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/tag/nomenclature/link: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Tag management in the product card + description: | + The method allows to add tags to the product card and remove tags from the product card.
+ When removing a tag from a product card, the tag itself is not removed.
+ It is possible to add 15 tags to a product card. + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Tags + requestBody: + required: true + content: + application/json: + schema: type: object properties: - chrtID: - type: integer - description: Числовой идентификатор размера для данного артикула WB - techSize: - type: string - description: Размер товара (А, XXL, 57 и др.) - wbSize: - type: string - description: Российский размер товара - skus: - type: array - description: Баркод товара - items: - type: string - example: 12345Ejf5 - tags: - description: Теги - type: array - items: + nmID: + description: WB article + type: integer + tagsIDs: + description: | + An array of numeric tag IDs.
+ When removing a tag from a product card, the tag itself is not removed.
+ To add tags to existing ones in the product card, you need to specify in the request the new tags and the tags that are already exist in the product card. + type: array + items: + type: integer + description: Numeric tag identifier + example: + nmID: 179891389 + tagsIDs: + - 123456 + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError6' + examples: + responseOK200: + $ref: '#/components/examples/responseOK200' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseContentError4' + examples: + IncorrectRequest4: + $ref: '#/components/examples/IncorrectRequest4' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/get/cards/list: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Product Cards + summary: Product cards list + description: | +
+ Method is available with the token of the Promotion category +
+ + Returns the list of created product cards.
+ + To get **more than 100** product cards, you need to use pagination: + +
    +
  1. Make first request (all listed params are required): +
    +                        {
    +                          "settings": {
    +                            "cursor": {
    +                              "limit": 100
    +                            },
    +                            "filter": {
    +                              "withPhoto": -1
    +                            }
    +                          }
    +                        }
    +
  2. +
  3. From last part of response list, copy 2 strings from `cursor` field response: +
      +
    • "updatedAt": "***"
    • +
    • "nmID": ***
    • +
    +
  4. Paste the copied strings to the request cursor, repeat the request.
  5. +
  6. Repeat 2 and 3, until total will be less than limit in response. This will mean you got all cards. +
+ +
+ Product cards from the trash are not provided in the method response. You can get these product cards via different method. +
+ +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ parameters: + - name: locale + in: query + schema: + type: string + example: ru + description: | + Language for response fields `name`, `value` and `object` translation: `ru` - Russian, `en` - English, `zh` - Chinese. + + Is not used in the sandbox + requestBody: + required: true + content: + application/json: + schema: type: object properties: - id: - type: integer - description: Идентификатор тега - name: - type: string - description: Название тега - color: - type: string - description: | - Цвет тега.
Доступные цвета:
D1CFD7 - серый
FEE0E0 - красный
ECDAFF - фиолетовый
E4EAFF - синий
DEF1DD - зеленый
FFECC7 - желтый
- createdAt: - type: string - description: Дата создания - updatedAt: - type: string - description: Дата изменения - cursor: - type: object - description: Пагинатор - properties: - updatedAt: - type: string - description: Дата с которой надо запрашивать следующий список КТ - nmID: - type: integer - description: Номер Артикула WB с которой надо запрашивать следующий список КТ - total: - type: integer - description: Кол-во возвращенных КТ - example: - cards: - - nmID: 12345678 - imtID: 123654789 - nmUUID: 01bda0b1-5c0b-736c-b2be-d0a6543e9be - subjectID: 7771 - subjectName: AKF системы - vendorCode: wb7f6mumjr1 - brand: '' - title: '' - description: '' - dimensions: - length: 0 - width: 0 - height: 0 - characteristics: - - id: 14177449 - name: Цвет - value: - - красно-сиреневый - sizes: - - chrtID: 316399238 - techSize: '0' - skus: - - '987456321654' - tags: - - id: 592569 - name: Популярный - color: D1CFD7 - createdAt: '2023-12-06T11:17:00.96577Z' - updatedAt: '2023-12-06T11:17:00.96577Z' - cursor: - updatedAt: '2023-12-06T11:17:00.96577Z' - nmID: 123654123 - total: 1 - '400': - description: Неверная форма запроса. - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен. - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/cards/error/list: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Список несозданных номенклатур (НМ) с ошибками - description: | - Метод позволяет получить список НМ и список ошибок которые произошли во время создания КТ.
`ВАЖНО`: Для того чтобы убрать НМ из ошибочных, надо повторно сделать запрос с исправленными ошибками на создание КТ. - tags: - - Просмотр - parameters: - - name: locale - in: query - schema: - type: string - example: en - description: "\nПараметр выбора языка значений полей ответа (для которых предусмотрена мультиязычность). new\n\nНе\_используется в\_песочнице.\n" - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - object: - description: Категория для который создавалось КТ с данной НМ - type: string - example: Блузки - vendorCode: - description: Артикул продавца - type: string - example: '6000000001' - updateAt: - description: Дата и время запроса на создание КТ с данным НМ - type: string - example: '2022-06-15T14:37:13Z' - errors: - description: Список ошибок из-за которых не обработался запрос на создание КТ с данным НМ - type: array - items: - type: string - example: Поля Рос. размер, Размер обязательны для заполнения - objectID: - description: Идентификатор предмета - type: integer - example: 41 - error: - description: Флаг ошибки. - type: boolean - example: false - errorText: - description: Описание ошибки. - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки. - type: string - example: '' - '400': - description: Неверная форма запроса. - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен. - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/cards/limits: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Лимиты по КТ - description: | - Метод позволяет получить отдельно бесплатные и платные лимиты продавца на создание карточек товаров.
Формула для получения количества карточек, которые можно создать: (`freeLimits` + `paidLimits`) - Количество созданных карточек.
Созданными считаются все карточки, которые можно получить методами "Список НМ" и "Список НМ, находящихся в корзине". - tags: - - Просмотр - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - freeLimits: - description: Количество бесплатных лимитов - type: integer - paidLimits: - description: Количество оплаченных лимитов - type: integer - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: string - nullable: true - example: - data: - freeLimits: 1500 - paidLimits: 10 - error: false - errorText: '' - additionalErrors: null - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/object/parent/all: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Родительские категории товаров - description: С помощью данного метода можно получить список всех родительских категорий товаров. - tags: - - Конфигуратор - parameters: - - name: locale - in: query - description: "Параметр выбора языка (ru, en, zh) значений поля name. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - items: - type: object - properties: - name: - description: Название категории - type: string - example: Электроника - id: - description: Идентификатор родительской категории - type: integer - example: 479 - isVisible: - description: Виден на сайте - type: boolean - example: true - error: - description: Флаг наличия ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/object/all: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Список предметов (подкатегорий) - description: С помощью данного метода можно получить список всех доступных предметов, родительских категорий предметов, и их идентификаторов. new - tags: - - Конфигуратор - parameters: - - name: name - in: query - schema: - type: string - example: Носки - description: Поиск по наименованию предмета (Носки), поиск работает по подстроке, искать можно на любом из поддерживаемых языков. - - name: limit - in: query - schema: - type: integer - example: 1000 - description: "Количество подкатегорий (предметов), максимум 1\_000" - - name: locale - in: query - schema: - type: string - example: en - description: "Язык полей ответа (ru, en, zh). Не\_используется в\_песочнице" - - name: offset - in: query - schema: - type: integer - example: 5000 - description: Номер позиции, с которой необходимо получить ответ - - name: parentID - in: query - schema: - type: integer - example: 1000 - description: Идентификатор родительской категории предмета - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: array - description: Подкатегории (предметы) - items: - type: object - properties: - subjectID: - type: integer - description: Идентификатор предмета - parentID: - type: integer - description: Идентификатор родительской категории - subjectName: - type: string - description: Название предмета - parentName: - type: string - description: Название родительской категории - error: - type: boolean - description: Флаг наличия ошибки - errorText: - type: string - description: Текст ошибки - additionalErrors: - description: Дополнительные ошибки - type: string - example: - data: - - subjectID: 2560 - parentID: 479 - subjectName: 3D очки - parentName: Электроника - - subjectID: 1152 - parentID: 858 - subjectName: 3D-принтеры - parentName: Оргтехника - error: false - errorText: '' - additionalErrors: null - /content/v2/object/charcs/{subjectId}: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Характеристики предмета (подкатегории) - description: Получение списка характеристик предмета по его ID. new - tags: - - Конфигуратор - parameters: - - name: subjectId - in: path - required: true - description: Идентификатор предмета - schema: - type: integer - example: 105 - - name: locale - in: query - description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: array - description: Данные - items: - type: object - properties: - charcID: - type: integer - description: Идентификатор характеристики - subjectName: - type: string - description: Название предмета - subjectID: - type: integer - description: Идентификатор предмета - name: - type: string - description: Название характеристики - required: - type: boolean - description: true - характеристику необходимо обязательно указать в КТ. false - характеристику не обязательно указывать - unitName: - type: string - description: Единица измерения - maxCount: - type: integer - description: | - Максимальное кол-во значений, которое можно присвоить данной характеристике. Если 0, то нет ограничения. - popular: - description: Характеристика популярна у пользователей (true - да, false - нет) - type: boolean - charcType: - type: integer - description: Тип характеристики (1 и 0 - строка или массив строк; 4 - число или массив чисел) - error: - type: boolean - description: Флаг наличия ошибки - errorText: - type: string - description: Текст ошибки - additionalErrors: - type: string - description: Дополнительные ошибки - example: - data: - - charcID: 54337 - subjectName: Кроссовки - subjectID: 105 - name: Размер - required: false - unitName: см - maxCount: 0 - popular: false - charcType: 4 - error: false - errorText: '' - additionalErrors: null - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/directory/colors: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Цвет - description: Получение значения характеристики цвет. - tags: - - Конфигуратор - parameters: - - name: locale - in: query - description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - items: - type: object - properties: - name: - description: Наименование цвета - type: string - example: персиковый мелок - parentName: - description: Наименование родительского цвета - type: string - example: оранжевый - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/directory/kinds: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Пол - description: Получение значения характеристики пол. - tags: - - Конфигуратор - parameters: - - name: locale - in: query - description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - description: Массив значений для хар-ки Пол - type: array - items: + settings: + type: object + description: Settings + properties: + sort: + description: Sort by + type: object + properties: + ascending: + type: boolean + description: Sort by **updatedAt** field (`false` - descending, `true` - ascending) + filter: + description: Filters + type: object + properties: + withPhoto: + type: integer + description: | + Photo: + * `0` — only cards without photos + * `1` — only cards with photos + * `-1` — all cards + textSearch: + type: string + description: Seller's article, Wildberries article or barcode search + tagIDs: + type: array + description: Tags ID search + items: + type: integer + allowedCategoriesOnly: + description: | + Category: true — permitted, false — forbidden + type: boolean + objectIDs: + type: array + description: Subject ID search + items: + type: integer + brands: + type: array + description: Brand search + items: + type: string + imtID: + description: | + `imtID` search + type: integer + cursor: + description: | + Cursor + type: object + properties: + limit: + type: integer + description: Number of cards in response + example: + settings: + sort: + ascending: false + filter: + textSearch: '4603743187500888' + allowedCategoriesOnly: true + tagIDs: + - 345 + - 415 + objectIDs: + - 235 + - 67 + brands: + - уллу + - EkkE + imtID: 328632 + withPhoto: -1 + cursor: + updatedAt: '2023-12-06T11:17:00.96577Z' + nmID: 370870300 + limit: 11 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + cards: + type: array + description: Product cards + items: + type: object + properties: + nmID: + type: integer + description: WB article + imtID: + type: integer + description: | + Merged product card ID
+ The same for all WB article of a merged product card
+ The product card has it, even if one is not merged with any other card + nmUUID: + type: string + format: uuid + description: Internal system ID of the product card + subjectID: + type: integer + description: Subject ID + subjectName: + type: string + description: Subject name + vendorCode: + type: string + description: Seller's article + brand: + type: string + description: Brand + title: + type: string + description: Product title + description: + type: string + description: Product description + needKiz: + description: | + Is a [labeling code](https://chestnyznak.ru/en) required for the product +
+ * `false` — labeling code is not required +
+ * `true` — labeling code is required + type: boolean + photos: + type: array + description: Photo array + items: + type: object + properties: + big: + description: URL of `900x1200` photo + type: string + c246x328: + description: URL of `248x328` photo + type: string + c516x688: + description: URL of `516x688` photo + type: string + square: + description: URL of `600x600` photo + type: string + tm: + description: URL of `75x100` photo + type: string + video: + type: string + description: Video URL + dimensions: + description: Dimensions and weight of packed product in `centimeters` and `kilograms` + type: object + properties: + length: + type: integer + description: Length, cm + width: + type: integer + description: Width, cm + height: + type: integer + description: Height, cm + weightBrutto: + type: number + description: Weight, kg
Number of decimal places <=3 + isValid: + type: boolean + description: | + Potential dimension difference: + + - `true` — not detected. `"isValid": true` does not guarantee that the dimensions are correct. In some cases (for example, when creating a new product category), `"isValid": true` will be returned for any values except zero. + + - `false` — the specified dimensions significantly differ from the average for the category (subject). it is recommended to double-check whether the product dimensions in the packaging are correctly specified **in centimeters**. The functionality of the product card, including the calculation of logistics and storage, will not be limited. Logistics and storage will continue to be calculated based on the current dimensions. Also, `"isValid": false` is returned when there are missing values or any dimension is zero. + characteristics: + type: array + description: Characteristics + items: + type: object + properties: + id: + type: integer + description: Characteristic ID + name: + type: string + description: Characteristic name + value: + description: Characteristic value + sizes: + type: array + description: Product sizes + items: + type: object + properties: + chrtID: + type: integer + description: Size ID + techSize: + type: string + description: Size (for example, S or 42) + wbSize: + type: string + description: Russian size + skus: + type: array + description: Barcode + items: + type: string + example: 12345Ejf5 + tags: + description: Tags + type: array + items: + type: object + properties: + id: + type: integer + description: Tag ID + name: + type: string + description: Tag name + color: + type: string + description: | + Color: + + * `D1CFD7` - grey + * `FEE0E0` - red + * `ECDAFF` - purple + * `E4EAFF` - blue + * `DEF1DD` - green + * `FFECC7` - yellow + createdAt: + type: string + description: Creation date and time + updatedAt: + type: string + description: Update date and time + cursor: + type: object + description: Pagination + properties: + updatedAt: + type: string + description: Date and time for next card page + nmID: + type: integer + description: WB article for next card page + total: + type: integer + description: Number of cards + example: + cards: + - nmID: 12345678 + imtID: 123654789 + nmUUID: 01bda0b1-5c0b-736c-b2be-d0a6543e9be + subjectID: 7771 + subjectName: AKF системы + vendorCode: wb7f6mumjr1 + brand: Тест + title: Тест-система + description: Тестовое описание + needKiz: false + photos: + - big: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/big/1.webp + c246x328: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/c246x328/1.webp + c516x688: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/c516x688/1.webp + square: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/square/1.webp + tm: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/tm/1.webp + video: https://videonme-basket-12.wbbasket.ru/vol137/part22557/225577433/hls/1440p/index.m3u8 + dimensions: + length: 55 + width: 40 + height: 15 + weightBrutto: 6.24 + isValid: false + characteristics: + - id: 14177449 + name: Цвет + value: + - красно-сиреневый + sizes: + - chrtID: 316399238 + techSize: '0' + skus: + - '987456321654' + tags: + - id: 592569 + name: Популярный + color: D1CFD7 + createdAt: '2023-12-06T11:17:00.96577Z' + updatedAt: '2023-12-06T11:17:00.96577Z' + cursor: + updatedAt: '2023-12-06T11:17:00.96577Z' + nmID: 123654123 + total: 1 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + plain/text: + example: Request body can not be decoded + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/error/list: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: List of failed product cards with errors + description: | + Returns the list of product cards and the list of errors encountered during product card creation
+ +
+ To delete product card from the errors list you need to repeat the product card creation request with fixed errors. +
+ +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Product Cards + parameters: + - name: locale + in: query + schema: type: string - example: Мужской - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/directory/countries: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Страна Производства - description: Получение значения характеристики Страна Производства. - tags: - - Конфигуратор - parameters: - - name: locale - in: query - description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - items: - type: object - properties: - name: - description: Значение характеристики Страны - type: string - example: Афганистан - fullName: - description: Полное название страны - type: string - example: Исламский Эмират Афганистан - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/directory/seasons: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Сезон - description: Получение значения характеристики Сезон. - tags: - - Конфигуратор - parameters: - - name: locale - in: query - description: "Параметр выбора языка (ru, en, zh) значений полей `subjectName`, `name`. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - description: Массив значений для хар-ки Сезон - type: array - items: + example: en + description: | + Language of multi-language parameters (for which the multi-language option is provided). + + Is not used in the sandbox + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + object: + description: Category for which the product card was created with the given product card + type: string + example: Блузки + vendorCode: + description: Supplier's article + type: string + example: '6000000001' + updateAt: + description: The date and time of creating product card with specified product card request + type: string + example: '2022-06-15T14:37:13Z' + errors: + description: | + List of errors due to which the request to create a product card with a given product card is not processed + type: array + items: + type: string + example: Поля Рос. размер, Размер обязательны для заполнения + objectID: + description: Product ID + type: integer + example: 1234 + error: + description: Error flag. + type: boolean + example: false + errorText: + description: Error description. + type: string + example: '' + additionalErrors: + nullable: true + description: Any additional errors. + type: string + example: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/update: + servers: + - url: https://content-api.wildberries.ru + post: + tags: + - Product Cards + summary: Update product cards + description: | + Edits product cards. If you need some product data, get it using [product cards list](/openapi/work-with-products#tag/Product-Cards/paths/~1content~1v2~1get~1cards~1list/post). + +
+ The product card is overwritten during an update. Therefore, you need to include all parameters of the product card in the request, including those you do not intend to update. +
+ + The dimensions of the products can only be specified in `centimeters`, and the weight of packed products must be specified in `kilograms`. + + You can not edit or delete barcodes but you can add new ones. You have not to send `photos`, `video` and `tags` and can not edit them. + + If this method response is Success (200) but product card was not updated, check errors using [list of failed product cards with errors](/openapi/work-with-products#tag/Product-Cards/paths/~1content~1v2~1cards~1error~1list/get). + + With one request you can edit maximum product cards (`nmID`). Maximum request size is 10 Mb + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 10 requests | 6 seconds | 5 requests | +
+ requestBody: + content: + application/json: + schema: + type: array + items: + type: object + required: + - nmID + - vendorCode + - sizes + properties: + nmID: + type: integer + description: WB article + vendorCode: + type: string + description: Supplier's article + brand: + type: string + description: Brand + title: + type: string + description: Product title + maxLength: 60 + description: + type: string + description: | + Product description
+ The maximum number of characters depends on the product category
+ Standard - 2000, minimum - 1000, maximum - 5000
+ More details about description rules in **Product card filling rules** in [Instructions](https://seller.wildberries.ru/help-center/article/A-113#описание) category of sellers portal + dimensions: + description: | + Dimensions and weight of packed product in `centimeters` and `kilograms` + type: object + properties: + length: + type: integer + description: Length, cm + width: + type: integer + description: Width, cm + height: + type: integer + description: Height, cm + weightBrutto: + type: number + description: Weight, kg
Number of decimal places <=3 + characteristics: + description: Product characteristics + type: array + items: + type: object + properties: + id: + type: integer + description: Characteristic ID + value: + description: Characteristic value + sizes: + type: array + description: | + Product sizes
+ If product has no sizes, send only barcodes + items: + type: object + properties: + chrtID: + type: integer + description: | + WB article of this size
+ Required for existing sizes
+ If you add new size, do not send this ID + techSize: + type: string + description: Size (for example, XL, S, 45) + wbSize: + type: string + description: Russian size + skus: + type: array + items: + type: string + description: Barcodes + example: + - nmID: 11111111 + vendorCode: wbiz72wmro + brand: '' + title: Свитер женский оверсайз с горлом + description: '12345' + dimensions: + length: 55 + width: 40 + height: 15 + weightBrutto: 3 + characteristics: + - id: 14177450 + value: + - хлопок 50% акрил 50% + - id: 50 + value: + - свободный крой + sizes: + - chrtID: 12345678 + techSize: ONE SIZE + wbSize: 78-90 + skus: + - '123487653460134' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + '413': + description: The request body size exceeds the given limit + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: Error title + detail: + type: string + description: Error details + code: + type: string + description: Internal error code + requestId: + type: string + description: Unique request ID + origin: + type: string + description: WB internal service ID + status: + type: number + description: HTTP status code + statusText: + type: string + description: Text of the HTTP status code + example: + title: request body too long + detail: https://openapi.wildberries.ru/content/api/ru/ + code: 71d3de1b-001e-488f-bbf5-55c31254fbeb + requestId: MN8usr6RfrzWHZfucSvNgb + origin: s2s-api-auth-content + status: 413 + statusText: Request Entity Too Large + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/moveNm: + servers: + - url: https://content-api.wildberries.ru + post: + tags: + - Product Cards + summary: Merging or separating of product cards + description: | + The method merges and separates product cards. Product cards are considered merged if they have the same `imtID`.

+ + To merge product cards, make a request **specifying** the `imtID`. You can merge up to 30 product cards at a time.
+ + To separate product cards, make a request **without specifying** the `imtID`. New `imtID`s will be generated for the separated cards.

+ + If you separate multiple product cards simultaneously, these cards will merge into one and receive a new `imtID`.
+ + To assign a unique `imtID` to each product card, you need to send one product card per request.

+ + The maximum request size is 10 MB. + +
+ It is possible to merge product cards containing only the same subjects. +
+ +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/requestMoveNmsImtConn' + - $ref: '#/components/schemas/requestMoveNmsImtDisconn' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Bad request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/responseCardCreate' + - $ref: '#/components/schemas/responseIncorrectDate' + examples: + responseExceededLimit: + $ref: '#/components/examples/responseExceededLimit' + responseCombining: + $ref: '#/components/examples/responseCombining' + responseIncorrectRequestFormat: + $ref: '#/components/examples/responseIncorrectRequestFormat' + responseNonExistentNmId: + $ref: '#/components/examples/responseNonExistentNmId' + responseNonExistentImt: + $ref: '#/components/examples/responseNonExistentImt' + responseCardCreate1: + $ref: '#/components/examples/responseCardCreate1' + responseDuplicateRequests: + $ref: '#/components/examples/responseDuplicateRequests' + responseAllCardsInSameGroup: + $ref: '#/components/examples/responseAllCardsInSameGroup' + responseIncorrectBeginDate: + $ref: '#/components/examples/responseIncorrectBeginDate' + responseIncorrectEndDate: + $ref: '#/components/examples/responseIncorrectEndDate' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + '413': + description: The request body size exceeds the given limit + content: + application/json: + schema: + type: string + examples: + BodySizeExceedsTheGivenLimit: + $ref: '#/components/examples/BodySizeExceedsTheGivenLimit' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/delete/trash: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Transfer product card to trash + description: | + Transfers the product card to trash. In doing so, the product card would not be deleted. + +
+ When transferring product cards to the trash, this product card is removed from the product card, meaning it is assigned a new imtID. +
+ + After 30 days in the trash the product card would be deleted automatically. The trash is cleared every night according to Moscow time.
+ The product card can be deleted at any time in [personal account](https://seller.wildberries.ru/new-goods/basket-cards). + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Product Cards + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nmIDs: + description: WB article (max. 1000) + type: array + items: + type: integer + example: + nmIDs: + - 123456789 + - 987654321 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + nullable: true + description: Any additional errors + type: object + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/recover: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Recover product card from trash + description: | + Returns the product card from trash + +
+ When restoring the product card from the trash, its imtID doesn't remain the same as it was for the product card in the trash. +
+ +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Product Cards + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nmIDs: + description: WB article (max. 1000) + type: array + items: + type: integer + example: + nmIDs: + - 123456789 + - 987654321 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + description: Error flag + type: boolean + errorText: + description: Error text + type: string + additionalErrors: + nullable: true + description: Additional errors + type: object + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/get/cards/trash: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Product cards in trash list + description: | +
+ Method is available with the token of the Promotion category +
+ + Returns list of product cards in trash. + + To get full list of product cards, if their number **exceed 100**, user need to use pagination. + +
    +
  1. Make the first request:
    +
    +                        {
    +                          "settings": {
    +                            "cursor": {
    +                              "limit": 100
    +                            }
    +                          }
    +                        }
    +
  2. +
  3. From last part of response list copy 2 strings from cursor field response: +
      +
    • "trashedAt": "***"
    • +
    • "nmID": ***
    • +
    +
  4. Paste copied strings in cursor request parameter, repeat the method request.
  5. +
  6. Repeat 2 and 3, until total will be less than limit in response. This will mean you got all cards. +
+ +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Product Cards + parameters: + - name: locale + in: query + schema: type: string - example: демисезон - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/directory/tnved: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: ТНВЭД код - description: С помощью данного метода можно получить список ТНВЭД кодов по ID предмета и фильтру по ТНВЭД коду. new - tags: - - Конфигуратор - parameters: - - name: subjectID - in: query - required: true - description: Идентификатор предмета - schema: - type: integer - example: 105 - - name: search - in: query - description: Поиск по ТНВЭД-коду. Работает только в паре с subjectID - schema: - type: integer - example: 6106903000 - - name: locale - in: query - description: "Язык (`ru`, `en`, `zh`) для значений полей `subjectName`, `name`. Не\_используется в\_песочнице" - schema: - type: string - example: en - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - description: Данные - type: array - items: - type: object - properties: - tnved: - type: string - description: ТНВЭД-код - isKiz: - type: boolean - description: | - - `true` - код маркировки требуется - - `false` - код маркировки не требуется - error: - type: boolean - description: Флаг наличия ошибки - example: false - errorText: - type: string - description: Текст ошибки - additionalErrors: - type: string - description: Дополнительные ошибки - example: - data: - - tnved: '6106903000' - isKiz: true - error: false - errorText: '' - additionalErrors: null - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/directory/vat: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Ставка НДС - description: С помощью данного метода можно получить список значений для характеристики **Ставка НДС**. new - tags: - - Конфигуратор - parameters: - - name: locale - in: query - required: true - description: "Язык значения элементов `data` (`ru`, `en`, `zh`). Не\_используется в\_песочнице" - schema: - type: string - example: ru - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - type: string - error: - type: boolean - description: Флаг наличия ошибки - errorText: - type: string - description: Текст ошибки - additionalErrors: - type: string - description: Дополнительные ошибки - example: - data: - - '0' - - '10' - - '20' - - Без НДС - - '13' - error: false - errorText: '' - additionalErrors: null - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v3/media/save: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Изменить медиафайлы - description: "Изменяет набор медиафайлов для товара (номенклатуры).\n\n**Внимание**. Новые медиафайлы (`data`) полностью заменяют старые (`mediaFiles`). Чтобы добавить новые медиафайлы, укажите ссылки не\_только на\_них, но и на\_старые файлы. \n\n\nТребования к изображениям:\n\n\n * максимум изображений для одного товара (номенклатуры)\_— 30;\n * минимальное разрешение – 700\_×\_900 пикселей;\n * максимальный размер\_— 32\_Мб;\n * минимальное качество\_— 65%;\n * форматы\_— JPG, PNG, BMP, GIF (статичные), WebP.\n\n\nТребования к видео:\n\n\n * максимум 1\_видео для одного товара (номенклатуры).\n * максимальный размер\_— 50\_Мб;\n * форматы\_— MOV, MP4.\n\n\nЕсли хотя бы одно изображение в запросе не соответствует требованиям, то даже при успешном ответе (200) ни\_одно изображение не загрузится\n" - tags: - - Медиафайлы - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - nmId: - description: Артикул Wildberries - type: integer - example: 213864079 - data: - description: "Ссылки на изображения в том порядке, в котором они будут на\_карточке товара" - type: array - items: - type: string - example: https://basket-stage-02.wb.ru/vol669/part66964/66964260/images/big/2.jpg - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - example: - data: {} - error: false - errorText: '' - additionalErrors: null - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - '409': - description: Ошибка сохранения для части ссылок - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - '422': - description: Отсутствие в запросе параметра nmId - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - '429': - description: Слишком много запросов - content: - application/json: - schema: - type: string - examples: - RateLimit: - $ref: '#/components/examples/RateLimit' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - /content/v3/media/file: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Добавить медиафайлы - description: "Добавляет один медиафайл для товара (номенклатуры).\n\nТребования к изображениям:\n\n * максимум изображений для одного товара (номенклатуры)\_— 30;\n * минимальное разрешение – 700\_×\_900 пикселей;\n * максимальный размер\_— 32\_Мб;\n * минимальное качество\_— 65%;\n * форматы\_— JPG, PNG, BMP, GIF (статичные), WebP.\n\nТребования к видео:\n\n * максимум 1\_видео для одного товара (номенклатуры);\n * максимальный размер\_— 50\_Мб;\n * форматы\_— MOV, MP4.\n" - tags: - - Медиафайлы - parameters: - - name: X-Nm-Id - in: header - description: Артикул Wildberries - schema: - type: string - example: '213864079' - required: true - - name: X-Photo-Number - in: header - description: "Номер медиафайла на загрузку, начинается с\_`1`. При загрузке видео всегда указывайте `1`.\n\nЧтобы добавить изображение к уже загруженным, номер медиафайла должен быть больше количества уже загруженных медиафайлов.\n" - schema: - type: integer - example: 2 - required: true - requestBody: - required: true - content: - multipart/form-data: - schema: - type: object - properties: - uploadfile: - type: string - format: binary - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - example: - data: {} - error: false - errorText: '' - additionalErrors: null - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - '429': - description: Слишком много запросов - content: - application/json: - schema: - type: string - examples: - RateLimit: - $ref: '#/components/examples/RateLimit' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/mediaErrors' - /content/v2/tags: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Список тегов - description: Метод позволяет получить список существующих тегов продавца. - tags: - - Теги - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - properties: - id: - description: Числовой идентификатор тега - type: integer - color: - description: Цвет тега - type: string - name: - description: Имя тега - type: string - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: string - example: '' - example: - data: - - id: 1 - color: D1CFD7 - name: Sale - error: false - errorText: '' - additionalErrors: '' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/tag: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Создание тега - description: | - Метод позволяет создать тег.
Завести можно 15 тегов.
Максимальная длина тега 15 символов. - tags: - - Теги - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - color: + enum: + - ru + - en + - zh description: | - Цвет тега.
Доступные цвета:
D1CFD7 - серый
FEE0E0 - красный
ECDAFF - фиолетовый
E4EAFF - синий
DEF1DD - зеленый
FFECC7 - желтый
- type: string - example: D1CFD7 - name: - description: Имя тега - type: string - example: Sale - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseContentError6' - examples: - responseOK200: - $ref: '#/components/examples/responseOK200' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/responseBodyContentError400' - - $ref: '#/components/schemas/responseContentError4' - - $ref: '#/components/schemas/responseContentError6' - examples: - responseBodyContentError400: - $ref: '#/components/examples/responseBodyContentError400' - responseBody400LenName: - $ref: '#/components/examples/responseBody400LenName' - responseBodyLimitTag: - $ref: '#/components/examples/responseBodyLimitTag' - responseBodyNameNotExist: - $ref: '#/components/examples/responseBodyNameNotExist' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/tag/{id}: - servers: - - url: https://suppliers-api.wildberries.ru - patch: - security: - - HeaderApiKey: [] - summary: Изменение тега - description: Метод позволяет изменять информацию о теге (имя и цвет). - tags: - - Теги - parameters: - - name: id - in: path - schema: - type: integer - example: 1 - description: Числовой идентификатор тега - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - color: - description: Цвет тега - type: string - example: D1CFD7 - name: - description: Имя тега - type: string - example: Sale - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/responseContentError6' - - $ref: '#/components/schemas/responseContentError4' - examples: - responseOK200: - $ref: '#/components/examples/responseOK200' - responseNotFound200: - $ref: '#/components/examples/responseNotFound200' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/responseBodyContentError400' - - $ref: '#/components/schemas/responseContentError4' - examples: - responseBodyContentError400: - $ref: '#/components/examples/responseBodyContentError400' - responseBody400LenName: - $ref: '#/components/examples/responseBody400LenName' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - delete: - security: - - HeaderApiKey: [] - summary: Удаление тега - description: "Метод позволяет удалить тег\_\_\_" - tags: - - Теги - parameters: - - name: id - in: path - schema: - type: integer - example: 1 - description: Числовой идентификатор тега - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/responseContentError6' - - $ref: '#/components/schemas/responseContentError5' - examples: - responseOK200: - $ref: '#/components/examples/responseOK200' - responseNotFound200Del: - $ref: '#/components/examples/responseNotFound200Del' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/responseBodyContentError400' - - $ref: '#/components/schemas/responseContentError5' - examples: - responseBodyContentError400: - $ref: '#/components/examples/responseBodyContentError400' - responseBodyTagNotExist: - $ref: '#/components/examples/responseBodyTagNotExist' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/tag/nomenclature/link: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Управление тегами в КТ - description: | - Метод позволяет добавить теги к КТ и снять их с КТ.
При снятии тега с КТ сам тег не удаляется.
К карточке можно добавить 15 тегов. - tags: - - Теги - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - nmID: - description: Артикул WB - type: integer - tagsIDs: - description: | - Массив числовых идентификаторов тегов.
Что бы снять теги с КТ, необходимо передать пустой массив.
Чтобы добавить теги к уже имеющимся в КТ, необходимо в запросе передать новые теги и теги, которые уже есть в КТ. - type: array - items: - type: integer - description: Числовой идентификатор тега. - example: - nmID: 179891389 - tagsIDs: - - 123456 - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseContentError6' - examples: - responseOK200: - $ref: '#/components/examples/responseOK200' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseContentError4' - examples: - IncorrectRequest4: - $ref: '#/components/examples/IncorrectRequest4' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseContentError6' - examples: - responseBodyError500: - $ref: '#/components/examples/responseBodyError500' - /content/v2/cards/delete/trash: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Перенос НМ в корзину - description: | - Метод позволяет перенести НМ в корзину. Перенос карточки в корзину не является удалением карточки. new
ВАЖНО: При переносе НМ в корзину, данная НМ выходит из КТ, то есть ей присваивается новый imtID.
Карточка товара удаляется автоматически, если лежит в корзине больше 30 дней.
Корзина зачищается от карточек, лежащих в ней более 30 дней, каждую ночь по Московскому времени. - tags: - - Корзина - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - properties: - nmIDs: - description: Артикул WB (max. 1000) - type: array - items: + Language of `name`, `value` and `object` parameters + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + settings: + type: object + description: Settings + properties: + sort: + description: Sort by + type: object + properties: + ascending: + type: boolean + description: "`trashedAt`: true — ascending, false\_— descending\n" + cursor: + description: Cursor + type: object + properties: + limit: + type: integer + description: Number of cards in response + filter: + description: Filters + type: object + properties: + textSearch: + type: string + description: Seller's article, Wildberries article or barcode to search + example: + settings: + sort: + ascending: false + filter: + textSearch: '4603743187500888' + cursor: + trashedAt: '2023-12-06T11:17:00.96577Z' + nmID: 370870300 + limit: 11 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + cards: + description: The list of requested product cards + type: array + items: + type: object + properties: + nmID: + type: integer + description: WB article + vendorCode: + type: string + description: Seller's article + subjectID: + type: integer + description: Subject ID + subjectName: + type: string + description: Subject name + photos: + type: array + description: Photo array + items: + type: object + properties: + big: + description: URL of `900x1200` photo + type: string + c246x328: + description: URL of `248x328` photo + type: string + c516x688: + description: URL of `516x688` photo + type: string + square: + description: URL of `600x600` photo + type: string + tm: + description: URL of `75x100` photo + type: string + video: + type: string + description: Video URL + sizes: + type: array + description: Product sizes + items: + type: object + properties: + chrtID: + type: integer + description: Size ID + techSize: + type: string + description: Product size (eg S, M, L, XL, 42, 42-43) + wbSize: + type: string + description: Russian product size + skus: + type: array + description: Array of barcodes + items: + type: string + example: 12345Ejf5 + dimensions: + type: object + description: Dimensions and weight of packed product in `centimeters` and `kilograms` + properties: + length: + type: integer + description: Length, cm + width: + type: integer + description: Width, cm + height: + type: integer + description: Height, cm + weightBrutto: + type: number + description: Weight, kg
Number of decimal places <=3 + isValid: + type: boolean + description: | + Potential dimension difference: + + - `true` — not detected. `"isValid": true` does not guarantee that the dimensions are correct. In some cases (for example, when creating a new product category), `"isValid": true` will be returned for any values except zero. + + - `false` — the specified dimensions significantly differ from the average for the category (subject). it is recommended to double-check whether the product dimensions in the packaging are correctly specified **in centimeters**. The functionality of the product card, including the calculation of logistics and storage, will not be limited. Logistics and storage will continue to be calculated based on the current dimensions. Also, `"isValid": false` is returned when there are missing values or any dimension is zero. + characteristics: + type: array + description: Characteristics + items: + type: object + properties: + id: + type: integer + description: Characteristic ID + name: + type: string + description: Characteristic name + value: + description: Characteristic value + createdAt: + type: string + description: Characteristics + trashedAt: + type: string + description: Date and time the card was transferred to trash + cursor: + type: object + description: Pagination + properties: + trashedAt: + type: string + description: Date and time for next card page + nmID: + type: integer + description: WB article for next card page + total: + type: integer + description: Number of cards + example: + cards: + - nmID: 1234567 + vendorCode: wb5xsy5ftj + subjectID: 1436 + subjectName: Ведра хозяйственные + photos: + - big: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/big/1.webp + c246x328: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/c246x328/1.webp + c516x688: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/c516x688/1.webp + square: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/square/1.webp + tm: https://basket-10.wbbasket.ru/vol1592/part159206/159206280/images/tm/1.webp + video: https://videonme-basket-12.wbbasket.ru/vol137/part22557/225577433/hls/1440p/index.m3u8 + sizes: + - chrtID: 111111111 + techSize: '0' + skus: + - xxxxxxxxxxxx + dimensions: + length: 35 + width: 40 + height: 15 + weightBrutto: 2.9 + isValid: false + createdAt: '2023-12-05T14:55:09.323462Z' + trashedAt: '2023-12-06T10:57:42.193028Z' + cursor: + trashedAt: '2023-12-06T10:57:42.193028Z' + nmID: 194128521 + total: 1 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + plain/text: + example: Request body can not be decoded + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/limits: + servers: + - url: https://content-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Limits for the product cards + description: | + The method allows to get separately free and paid vendor limits for creating product cards.
+ To calculate the number of cards that can be created, use the formula: (freeLimits + paidLimits) - Number of cards created.
+ All cards that can be obtained using the [product cards list](/openapi/work-with-products#tag/Product-Cards/paths/~1content~1v2~1get~1cards~1list/post) and [list of product cards that are in the trash](/openapi/work-with-products#tag/Product-Cards/paths/~1content~1v2~1get~1cards~1trash/post) methods are considered created. + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Creating Product Cards + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + freeLimits: + description: Amount of free limits + type: integer + paidLimits: + description: Amount of paid limits + type: integer + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + description: Additional errors + type: string + nullable: true + example: + data: + freeLimits: 1500 + paidLimits: 10 + error: false + errorText: '' + additionalErrors: null + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/barcodes: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Generation of barcodes + description: | + Generates array of unique barcodes to create size of the product card + +
+ Request limit per one seller's account for all methods in the Content category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 100 requests | 600 milliseconds | 5 requests | + + Exceptions are the methods: + +
+ tags: + - Creating Product Cards + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + count: + description: Number of barcodes to be generated, maximum 5,000 + type: integer + example: 100 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + description: An array of generated barcodes + type: array + items: + type: string + example: '5032781145187' + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error description. + type: string + example: '' + additionalErrors: + description: Any additional errors + nullable: true + type: string + example: '' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError403' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/upload: + servers: + - url: https://content-api.wildberries.ru + post: + tags: + - Creating Product Cards + summary: Create product cards + description: "Creates products cards. You can specify product description and characteristics.
\n\nHow to create a card:\n\n 1. Get [parent categories list](/openapi/work-with-products#tag/Categories-Subjects-and-Characteristics/paths/~1content~1v2~1object~1parent~1all/get)\n 2. Get [the category and get all subjects](/openapi/work-with-products#tag/Categories-Subjects-and-Characteristics/paths/~1content~1v2~1object~1all/get)\n 3. Choose [the subject and get all available characteristics](/openapi/work-with-products#tag/Categories-Subjects-and-Characteristics/paths/~1content~1v2~1object~1charcs~1%7BsubjectId%7D/get). For `Color`, `Gender`, `Country of origin`, `Season`, `VAT rate`, `HS code` characteristics use values from [category](/openapi/work-with-products#tag/Categories-Subjects-and-Characteristics).\n 4. Send the request. If the response is Success (200) but the card was not created, check errors using [list of failed product card with errors](/openapi/work-with-products#tag/Product-Cards/paths/~1content~1v2~1cards~1error~1list/get).\n\nThe dimensions of the products can only be specified in `centimeters`, and the weight of packed products must be specified in `kilograms`.
\n\nWith one request you can create maximum 100\_merged product cards (`imtID`), 30\_product cards (`nmID`) in\_each. Maximum request size is 10 Mb.
\n\nCreating a card is asynchronous, after sending the request is put in a queue for processing.\n\n
\n If there were errors during queue processing, the product card is considered invalid.\n
\n\n
\nRequest limit per one seller's account:\n\n| Period | Limit | Interval | Burst |\n| --- | --- | --- | --- |\n| 1 minute | 10 requests | 6 seconds | 5 requests |\n
\n" + requestBody: + content: + application/json: + schema: + type: array + items: + type: object + required: + - subjectID + - variants + properties: + subjectID: + type: integer + description: Subject ID + variants: + description: Product variants, maximum 30 in one merged card + type: array + items: + type: object + required: + - vendorCode + properties: + brand: + type: string + description: Brand + title: + type: string + description: Product title + maxLength: 60 + description: + type: string + description: | + Product description
+ The maximum number of characters depends on the product category
+ Standard - 2000, minimum - 1000, maximum - 5000
+ More details about description rules in **Product card filling rules** in [Instructions](https://seller.wildberries.ru/help-center/article/A-113#описание) category of sellers portal + vendorCode: + type: string + description: Seller's article + dimensions: + description: | + Dimensions and weight of packed product in `centimeters` and `kilograms`
+ In case of empty `dimensions`, they are generated automatically with zero values + type: object + properties: + length: + type: integer + description: Length, cm + width: + type: integer + description: Width, cm + height: + type: integer + description: Height, cm + weightBrutto: + type: number + description: Weight, kg
Number of decimal places <=3 + sizes: + type: array + description: | + Product sizes
+ If the product has sizes but you send empty parameter, it is generated automatically with values: `techSize` = "A", `wbSize` = "1" and some random barcode + items: + type: object + properties: + techSize: + type: string + description: Product size (for example, L or 45) + wbSize: + type: string + description: Russian size + price: + type: integer + description: Price, ₽ + skus: + type: array + items: + type: string + description: Barcode. In case of empty `skus`, the barcode is generated automatically + characteristics: + type: array + description: Product characteristics + items: + type: object + required: + - id + - value + properties: + id: + type: integer + description: Characteristic ID + value: + description: Characteristic value + examples: + creatingOneCard: + $ref: '#/components/examples/creatingOneCard' + creatingMergedCards: + $ref: '#/components/examples/creatingMergedCards' + creatingGroupOfIndividualCards: + $ref: '#/components/examples/creatingGroupOfIndividualCards' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + examples: + InvalidRequestFormatContent: + $ref: '#/components/examples/InvalidRequestFormatContent' + CardCreatedWithoutVendorCode: + $ref: '#/components/examples/CardCreatedWithoutVendorCode' + CardsVendorCodeUsedInOtherCards: + $ref: '#/components/examples/CardsVendorCodeUsedInOtherCards' + ThisCategoryDoesNotExist: + $ref: '#/components/examples/ThisCategoryDoesNotExist' + 'Response401': + $ref: '#/components/responses/Response401' + '413': + description: The request body size exceeds the given limit + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: Error title + detail: + type: string + description: Error details + code: + type: string + description: Internal error code + requestId: + type: string + description: Unique request ID + origin: + type: string + description: WB internal service ID + status: + type: number + description: HTTP status code + statusText: + type: string + description: Text of the HTTP status code + example: + title: request body too long + detail: https://openapi.wildberries.ru/content/api/ru/ + code: 71d3de1b-001e-488f-bbf5-55c31254fbeb + requestId: MN8usr6RfrzWHZfucSvNgb + origin: s2s-api-auth-content + status: 413 + statusText: Request Entity Too Large + 'Response429': + $ref: '#/components/responses/Response429' + /content/v2/cards/upload/add: + servers: + - url: https://content-api.wildberries.ru + post: + tags: + - Creating Product Cards + summary: Create product cards with merge + description: "The method creates new product cards by merging them with existing ones.\n\nThe dimensions of the products can only be specified in `centimeters`, and the weight of packed products must be specified in `kilograms`.\n\nYou can not edit or delete barcodes but you can add new ones. You have not to send `photos`, `video` and `tags` and can not edit them.\n\nIf this method response is Success (200) but product card was not updated, check errors using [list of failed nomenclature with errors](/openapi/work-with-products#tag/Nomenclatures/paths/~1content~1v2~1cards~1error~1list/get).\n\nWith one request you can edit maximum 3000\_nomenclatures (`nmID`). Maximum request size is 10 Mb\n\n
\nRequest limit per one seller's account:\n\n| Period | Limit | Interval | Burst |\n| --- | --- | --- | --- |\n| 1 minute | 10 requests | 6 seconds | 5 requests |\n
\n" + requestBody: + content: + application/json: + schema: + type: object + properties: + imtID: + type: integer + description: | + `imtID` of product card, to which the product card added + cardsToAdd: + description: The structure of the added product card + type: array + items: + type: object + required: + - vendorCode + properties: + brand: + type: string + description: Brand + vendorCode: + type: string + description: Supplier's article + title: + type: string + description: Product title + maxLength: 60 + description: + type: string + description: | + Product description
+ The maximum number of characters depends on the product category
+ Standard - 2000, minimum - 1000, maximum - 5000
+ More details about description rules in **Product card filling rules** in [Instructions](https://seller.wildberries.ru/help-center/article/A-113#описание) category of sellers portal + dimensions: + description: | + Dimensions and weight of packed product in `centimeters` and `kilograms`
+ In case of empty `dimensions`, they are generated automatically with zero values + type: object + properties: + length: + type: integer + description: Length, cm + width: + type: integer + description: Width, cm + height: + type: integer + description: Height, cm + weightBrutto: + type: number + description: Weight, kg
Number of decimal places <=3 + sizes: + type: array + description: | + Product sizes
+ If the product has sizes but you send empty parameter, it is generated automatically with values: `techSize` = "A", `wbSize` = "1" and some random barcode + items: + type: object + properties: + techSize: + type: string + description: Product size (for example, L or 45) + wbSize: + type: string + description: Russian size + price: + type: integer + description: Price, ₽ + skus: + type: array + items: + type: string + description: Barcode. In case of empty `skus`, the barcode is generated automatically + characteristics: + type: array + description: Product characteristics + items: + type: object + required: + - id + - value + properties: + id: + type: integer + description: Characteristic ID + value: + description: Characteristic value + example: + imtID: 987654321 + cardsToAdd: + - vendorCode: myVariant1 + title: Наименование товара + description: Описание товара + brand: Бренд + dimensions: + length: 9 + width: 6 + height: 3 + weightBrutto: 0.893 + characteristics: + - id: 12 + value: + - Russian flag + - id: 25471 + value: 1300 + - id: 14177449 + value: + - blue + sizes: + - skus: + - '12345678' + - vendorCode: myVariant2 + title: Наименование товара + description: Описание товаров + brand: Бренд + dimensions: + length: 8 + width: 8 + height: 8 + weightBrutto: 1.04 + characteristics: + - id: 12 + value: + - Russian flag + - id: 25471 + value: 1300 + - id: 14177449 + value: + - blue + sizes: + - skus: + - '222222222222' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/responseCardCreate' + example: + data: null + error: false + errorText: '' + additionalErrors: {} + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseBodyContentError400' + examples: + InvalidRequestFormatContent: + $ref: '#/components/examples/InvalidRequestFormatContent' + CardCreatedWithoutVendorCode: + $ref: '#/components/examples/CardCreatedWithoutVendorCode' + CardsVendorCodeUsedInOtherCards: + $ref: '#/components/examples/CardsVendorCodeUsedInOtherCards' + ThisCategoryDoesNotExist: + $ref: '#/components/examples/ThisCategoryDoesNotExist' + 'Response401': + $ref: '#/components/responses/Response401' + '413': + description: The request body size exceeds the given limit + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: Error title + detail: + type: string + description: Error details + code: + type: string + description: Internal error code + requestId: + type: string + description: Unique request ID + origin: + type: string + description: WB internal service ID + status: + type: number + description: HTTP status code + statusText: + type: string + description: Text of the HTTP status code + example: + title: request body too long + detail: https://openapi.wildberries.ru/content/api/ru/ + code: 71d3de1b-001e-488f-bbf5-55c31254fbeb + requestId: MN8usr6RfrzWHZfucSvNgb + origin: s2s-api-auth-content + status: 413 + statusText: Request Entity Too Large + 'Response429': + $ref: '#/components/responses/Response429' + /content/v3/media/file: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Upload media file + description: "Uploads and adds one media file for the product card.\n\nRequirements for images:\n\n * maximum images for\_each product card \_— 30,\n * minimal resolution – 700\_×\_900 pixels,\n * maximum size\_— 32\_МB,\n * minimal quality\_— 65%,\n * formats\_— JPG, PNG, BMP, GIF (static), WebP.\n\nRequirements for video:\n\n * maximum one video for\_each product card\n * maximum size\_— 50\_MB\n * formats\_— MOV, MP4\n\n
\nRequest limit per one seller's account for all methods in the Content category:\n\n| Period | Limit | Interval | Burst |\n| --- | --- | --- | --- |\n| 1 minute | 100 requests | 600 milliseconds | 5 requests |\n\nExceptions are the methods:\n\n
\n" + tags: + - Media Files + parameters: + - name: X-Nm-Id + in: header + description: Wildberries article + schema: + type: string + example: '213864079' + required: true + - name: X-Photo-Number + in: header + description: "Number of media file, starting from\_`1`. To add the video set `1`.\n\nTo add the image to the uploaded ones, set file the number more then number of uploaded files.\n" + schema: type: integer - example: - nmIDs: - - 987654321 - - 123456789 - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - example: - data: null - error: false - errorText: '' - additionalErrors: {} - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/cards/recover: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Восстановление НМ из корзины - description: | - Метод позволяет восстановить НМ из корзины. new
ВАЖНО: При восстановлении НМ из корзины она не возвращается в КТ в которой была до переноса в корзину, то есть imtID остается тот же, что и был у НМ в корзине. - tags: - - Корзина - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - properties: - nmIDs: - description: Артикул WB (max. 1000) - type: integer - example: - nmIDs: - - 123456789 - - 987654321 - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - example: - data: null - error: false - errorText: '' - additionalErrors: {} - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /content/v2/get/cards/trash: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Список НМ, находящихся в корзине - description: | - Метод позволяет получить список НМ, находящихся в корзине.

Порядок работы.
Чтобы получить полный список номенклатур, если их больше 100, необходимо воспользоваться пагинацией. -
    -
  1. Сделать первый запрос (все указанные ниже параметры обязательны):
    -
    -                {
    -                  "settings": {                      
    -                    "cursor": {
    -                      "limit": 100
    -                    }
    -                  }
    -                }
    -
  2. -
  3. Пройти в конец полученного списка номенклатур, скопировать из cursor две строки: -
      -
    • "trashedAt": "***",
    • -
    • "nmID": ***,
    • -
    -
  4. Вставить скопированные строки в cursor запроса, повторить вызов метода.
  5. -
  6. Повторять пункты 2 и 3, пока total в ответе не станет меньше чем limit в запросе. -
    Это будет означать, что Вы получили все карточки. -
-
По желанию можно добавить поиск и сортировку. См описание в Request Body schema -
В Request samples представлен пример запроса со всеми возможными параметрами. - tags: - - Корзина - parameters: - - name: locale - in: query - schema: - type: string - enum: - - ru - - en - - zh - description: "Язык полей ответа `name`, `value` и `object`: `ru`, `en`, `zh`.\n\nНе\_используется в\_песочнице\n" - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - settings: - type: object - description: Настройки - properties: - sort: - description: Параметр сортировки - type: object - properties: - ascending: - type: boolean - description: Сортировать по `trashedAt` (`false` - по убыванию, `true` - по возрастанию) - cursor: - description: Курсор - type: object - properties: - limit: - type: integer - description: Сколько КТ выдать в ответе - filter: - description: Параметры фильтрации - type: object - properties: - textSearch: - type: string - description: Поиск по артикулу продавца, артикулу WB, баркоду. - example: - settings: - sort: - ascending: false - filter: - textSearch: '' - cursor: - limit: 11 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - cards: - description: Массив карточек товаров - type: array - items: - type: object - properties: - nmID: - type: integer - description: Артикул WB - vendorCode: - type: string - description: Артикул продавца - subjectID: - description: Идентификатор предмета - type: string - subjectName: - description: Название предмета - type: string - photos: - type: array - description: Массив фото - items: + example: 2 + required: true + requestBody: + required: true + content: + multipart/form-data: + schema: + type: object + properties: + uploadfile: + type: string + format: binary + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + nullable: true + description: Additional errors + type: object + example: + data: {} + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + plain/text: + example: Invalid 'boundary' for 'multipart/form-data' request + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + 'Response429': + $ref: '#/components/responses/Response429' + /content/v3/media/save: + servers: + - url: https://content-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Upload media files via links + description: "The method uploads a set of media files to a product card by specifying links in the request.\n\n
\n New media files (data) replace old ones (mediaFiles). To add new files, set links both to\_new and old files.\n
\n\nRequirements for images:\n\n * maximum images for\_each product card\_— 30,\n * minimal resolution – 700\_×\_900 pixels,\n * maximum size\_— 32\_MB,\n * minimal quality\_— 65%,\n * formats\_— JPG, PNG, BMP, GIF (static), WebP.\n\n\nRequirements for video:\n\n * maximum one video for\_each product card,\n * maximum size\_— 50\_MB,\n * formats\_— MOV, MP4.\n\n\nIf one or several images or a video do not meet the requirements, no images and a video will be uploaded even if you have the success response\_(200)\n\n
\nRequest limit per one seller's account for all methods in the Content category:\n\n| Period | Limit | Interval | Burst |\n| --- | --- | --- | --- |\n| 1 minute | 100 requests | 600 milliseconds | 5 requests |\n\nExceptions are the methods:\n\n
\n" + tags: + - Media Files + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nmId: + description: Wildberries article + type: integer + data: + description: Links to images in the order that they are on the card, and a video at any position of the array + type: array + items: + type: string + example: + nmId: 213864079 + data: + - https://basket-stage-02.dasec.ru/vol669/part66964/66964260/images/big/2.jpg + - https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_mb.mp4 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + nullable: true + description: Additional errors + type: object + example: + data: {} + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '409': + description: Error saving some of the links + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + '422': + description: The parameter nmId is missing + content: + application/json: + schema: + $ref: '#/components/schemas/mediaErrors' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/upload/task: + servers: + - url: https://discounts-prices-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Set prices and discounts + description: | + Sets prices and discounts + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ requestBody: + $ref: '#/components/requestBodies/SupplierTaskRequest' + responses: + '200': + $ref: '#/components/responses/SuccessTaskResponse' + '208': + $ref: '#/components/responses/Responses208' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + UploadLimitExceeded: + $ref: '#/components/examples/UploadLimitExceeded' + DuplicateItemNos: + $ref: '#/components/examples/DuplicateItemNos' + TheSpecifiedPricesAndDiscountsAreAlreadySet: + $ref: '#/components/examples/TheSpecifiedPricesAndDiscountsAreAlreadySet' + InvalidDataFormat: + $ref: '#/components/examples/InvalidDataFormat' + PriceShouldBeAWholeNumber: + $ref: '#/components/examples/PriceShouldBeAWholeNumber' + InvalidPriceValue: + $ref: '#/components/examples/InvalidPriceValue' + InvalidDiscountValue: + $ref: '#/components/examples/InvalidDiscountValue' + InvalidItemNo: + $ref: '#/components/examples/InvalidItemNo' + PriceAndDiscountNotSpecified: + $ref: '#/components/examples/PriceAndDiscountNotSpecified' + EmptyData: + $ref: '#/components/examples/EmptyData' + AllItemNosAreSpecifiedIncorrectlyOrPricesAndDiscounts: + $ref: '#/components/examples/AllItemNosAreSpecifiedIncorrectlyOrPricesAndDiscounts' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Unexpected result + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + UnexpectedResult: + $ref: '#/components/examples/UnexpectedResult' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/upload/task/size: + servers: + - url: https://discounts-prices-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Sets size prices + description: | + Sets different prices for different sizes. + + Only for products from categories where size price setting is available. For these products `editableSizePrice: true` in [Get product sizes](/openapi/work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1list~1goods~1size~1nm/get) response. + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ requestBody: + $ref: '#/components/requestBodies/SupplierTaskRequestSize' + responses: + '200': + $ref: '#/components/responses/SuccessTaskResponse' + '208': + $ref: '#/components/responses/Responses208' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + UploadLimitExceeded: + $ref: '#/components/examples/UploadLimitExceeded' + DuplicateItemNos: + $ref: '#/components/examples/DuplicateItemNos' + DuplicateSizeIDs: + $ref: '#/components/examples/DuplicateSizeIDs' + TheSpecifiedPricesAreAlreadySet: + $ref: '#/components/examples/TheSpecifiedPricesAreAlreadySet' + InvalidDataFormat: + $ref: '#/components/examples/InvalidDataFormat' + PriceShouldBeAWholeNumber: + $ref: '#/components/examples/PriceShouldBeAWholeNumber' + InvalidPriceValue: + $ref: '#/components/examples/InvalidPriceValue' + InvalidItemNo: + $ref: '#/components/examples/InvalidItemNo' + InvalidSize: + $ref: '#/components/examples/InvalidSize' + PriceNotSpecified: + $ref: '#/components/examples/PriceNotSpecified' + EmptyData: + $ref: '#/components/examples/EmptyData' + AllItemNosAreSpecifiedIncorrectlyOrPrices: + $ref: '#/components/examples/AllItemNosAreSpecifiedIncorrectlyOrPrices' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Unexpected result + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + UnexpectedResult: + $ref: '#/components/examples/UnexpectedResult' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/upload/task/club-discount: + servers: + - url: https://discounts-prices-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Set WB Club discounts + description: | + Sets WB Club subscription discounts + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ requestBody: + $ref: '#/components/requestBodies/SupplierTaskRequestClubDisc' + responses: + '200': + $ref: '#/components/responses/SuccessTaskResponse' + '208': + $ref: '#/components/responses/Responses208' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + CheckTheWBClubDiscount: + $ref: '#/components/examples/CheckTheWBClubDiscount' + DiscountsAreTheSameAsThoseAlreadySet: + $ref: '#/components/examples/DiscountsAreTheSameAsThoseAlreadySet' + AllItemNosAreSpecifiedIncorrectlyOrDiscounts: + $ref: '#/components/examples/AllItemNosAreSpecifiedIncorrectlyOrDiscounts' + InvalidDiscountValue: + $ref: '#/components/examples/InvalidDiscountValue' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Unexpected result + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + UnexpectedResult: + $ref: '#/components/examples/UnexpectedResult' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/history/tasks: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Processed upload state + description: | + Returns the processed upload data + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseTaskHistory' + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + example: true + errorText: + type: string + example: Invalid request parameters + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/history/goods/task: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Processed upload details + description: | + Returns products in processed upload including product errors + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseGoodHistories' + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + example: true + errorText: + type: string + example: Invalid request parameters + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/buffer/tasks: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Unprocessed upload state + description: | + Returns the processing upload data + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseTaskBuffer' + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + example: true + errorText: + type: string + example: Invalid request parameters + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/buffer/goods/task: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Unprocessed upload details + description: | + Returns products in processing upload including product errors + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/uploadID' + responses: + '200': + $ref: '#/components/responses/ResponseGoodBufferHistories' + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + example: true + errorText: + type: string + example: Invalid request parameters + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/list/goods/filter: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Get products with prices + description: | + Returns product data by its article.
To get data for all products, do not set the article, set `limit=1000`, and use the `offset` field to set the data offset. The offset should be calculated using the formula: `offset` plus `limit` from the previous request. Repeat the request until you receive a response with an empty array.
To get data for the size of the product, use [a separate method](/openapi/work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1list~1goods~1size~1nm/get) + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/filterNmID' + responses: + '200': + $ref: '#/components/responses/ResponseGoodsLists' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + SortError: + $ref: '#/components/examples/SortError' + InvalidRequestParameters: + $ref: '#/components/examples/InvalidRequestParameters' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/list/goods/size/nm: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Get product sizes with prices + description: | + Returns sizes data for the product. Only for products from categories where size price setting is available. For these products `editableSizePrice: true` + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/nmID' + responses: + '200': + $ref: '#/components/responses/ResponseSizeLists' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + InvalidRequestParameters: + $ref: '#/components/examples/InvalidRequestParameters' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v2/quarantine/goods: + servers: + - url: https://discounts-prices-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Prices and Discounts + summary: Get products in quarantine + description: | + Returns information about products in quarantine. +

+ If the product new price with discount will be minimum 3 times less than the old price, the product will be placed [in quarantine](https://seller.wildberries.ru/discount-and-prices/quarantine) and will be sold at the old price. An error about this will be in [upload states](/openapi/work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1history~1tasks/get) method response. +

+ You can change price or discount via API or release product from quarantine [in personal account](https://seller.wildberries.ru/discount-and-prices/quarantine). +

+ For products with [size-based pricing](/openapi/work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1upload~1task~1size/post), quarantine does not apply + +
+ Request limit per one seller's account for all methods in the Prices and Discounts category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + responses: + '200': + $ref: '#/components/responses/ResponseQuarantineGoods' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + InvalidRequestParameters: + $ref: '#/components/examples/InvalidRequestParameters' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Unexpected result + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseError' + examples: + UnexpectedResult: + $ref: '#/components/examples/UnexpectedResult' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/stocks/{warehouseId}: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Inventory + summary: Update inventory + description: | + Updates product inventory + +
+ The names of the query parameters are not validated. If invalid names are sent, the response will be successful(204), but the remaining amounts will not be updated. +
+ +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + content: + application/json: + schema: + type: object + required: + - stocks + properties: + stocks: + type: array + minItems: 1 + maxItems: 1000 + description: SKU array + items: + type: object + properties: + sku: + type: string + description: SKU + example: SkuTest123 + amount: + type: integer + maximum: 100000 + description: Amount + example: 10 + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '406': + $ref: '#/components/responses/StatusNotAcceptable' + '409': + description: Error updating inventory + content: + application/json: + schema: + $ref: '#/components/schemas/StocksWarehouseError' + examples: + SubjectDBSRestriction: + $ref: '#/components/examples/SubjectDBSRestriction' + SubjectFBSRestriction: + $ref: '#/components/examples/SubjectFBSRestriction' + UploadDataLimit: + $ref: '#/components/examples/UploadDataLimit' + CargoWarehouseRestrictionMGT: + $ref: '#/components/examples/CargoWarehouseRestrictionMGT' + CargoWarehouseRestrictionSGT: + $ref: '#/components/examples/CargoWarehouseRestrictionSGT' + CargoWarehouseRestrictionSGTKGTPlus: + $ref: '#/components/examples/CargoWarehouseRestrictionSGTKGTPlus' + CargoWarehouseRestrictionKGTPlus: + $ref: '#/components/examples/CargoWarehouseRestrictionKGTPlus' + NotFound: + $ref: '#/components/examples/NotFound' + StoreIsProcessing: + $ref: '#/components/examples/StoreIsProcessing1' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + tags: + - Inventory + summary: Delete inventory + description: | + Deletes product inventory + +
+ This action is irreversible. Deleted stock will require re-uploading to continue sales +
+ +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + skus: + type: array + nullable: false + minItems: 1 + maxItems: 1000 + description: SKUs array + items: + type: string + nullable: false + example: BarcodeTest123 + responses: + '204': + description: Deleted + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + description: Not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: Not Found + '409': + description: Error deleting inventory + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + StoreIsProcessing: + $ref: '#/components/examples/StoreIsProcessing' + 'Response429': + $ref: '#/components/responses/Response429' + post: + security: + - HeaderApiKey: [] + tags: + - Inventory + summary: Get inventory + description: | + Returns product inventory + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + required: true + content: + application/json: + schema: + type: object + nullable: false + properties: + skus: + type: array + description: SKUs array + minItems: 1 + maxItems: 1000 + items: + type: string + example: BarcodeTest123 + required: + - skus + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + stocks: + type: array + nullable: false + items: + type: object + properties: + sku: + type: string + nullable: false + description: SKU + example: SkuTest123 + amount: + type: integer + nullable: false + description: Amount + example: 10 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/offices: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Seller Warehouses + summary: Get offices + description: | + Returns a list of all offices to link to seller warehouse. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ responses: + '200': + description: Success + content: + application/json: + schema: + type: array + nullable: false + description: Offices list + items: + $ref: '#/components/schemas/Office' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/warehouses: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Seller Warehouses + summary: Get warehouses + description: | + Returns a list of all seller's warehouses + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ responses: + '200': + description: Success + content: + application/json: + schema: + type: array + nullable: false + description: Warehouses list + items: + $ref: '#/components/schemas/Warehouse' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + post: + security: + - HeaderApiKey: [] + tags: + - Seller Warehouses + summary: Create warehouse + description: | + Creates a seller's warehouse. You cannot link an office that is already in use. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + nullable: false + minLength: 1 + maxLength: 200 + description: Supplier's warehouse name + example: Koledino 2 + officeId: + type: integer + nullable: false + minimum: 1 + description: Office ID + example: 15 + required: + - name + - officeId + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + id: + type: integer + nullable: false + description: Warehouse ID + example: 2 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + WarehouseNameInvalid: + $ref: '#/components/examples/WarehouseNameInvalid' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error creating a new warehouse + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/warehouses/{warehouseId}: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Seller Warehouses + summary: Update warehouse + description: | + Updates the seller's warehouse details. Changing the linked office is allowed once per day. You cannot link an office that is already in use + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Warehouse' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + nullable: false + minLength: 1 + maxLength: 200 + description: Supplier's warehouse name + example: Koledino + officeId: + type: integer + nullable: false + minimum: 1 + description: Office ID + example: 15 + required: + - name + - officeId + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + WarehouseNameInvalid: + $ref: '#/components/examples/WarehouseNameInvalid' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error updating a warehouse + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + tags: + - Seller Warehouses + summary: Delete warehouse + description: | + Deletes the supplier's warehouse. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Warehouse' + responses: + '204': + description: Deleted + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/passes/offices: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Passes + summary: Get offices for pass + description: | + Returns a list of offices that require a pass. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ responses: + '200': + description: Success + content: + application/json: + schema: + type: array + nullable: false + description: Offices list + items: + $ref: '#/components/schemas/PassOffice' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/passes: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Passes + summary: Get passes + description: | + Returns a list of all seller's passes. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ responses: + '200': + description: Success + content: + application/json: + schema: + type: array + nullable: false + description: Passes list + items: + $ref: '#/components/schemas/Pass' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + post: + security: + - HeaderApiKey: [] + tags: + - Passes + summary: Create pass + description: | + Creates a supplier pass.
The pass is valid for 48 hours from the time of creation. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 10 minutes | 1 request | 10 minutes | 1 request | +
+ requestBody: + required: true + description: The total length of the full name is limited from 6 to 100 characters. The car number can contain only letters and numbers. + content: + application/json: + schema: type: object properties: - big: - description: URL фото `900х1200` - type: string - c246x328: - description: URL фото `248х328` - type: string - c516x688: - description: URL фото `516х688` - type: string - square: - description: URL фото `600х600` - type: string - tm: - description: URL фото `75х100` - type: string - video: - type: string - description: URL видео - sizes: - type: array - description: Массив размеров - items: + firstName: + type: string + nullable: false + minLength: 1 + description: First name + example: Alex + lastName: + type: string + nullable: false + minLength: 1 + description: Last name + example: Petrov + carModel: + type: string + nullable: false + minLength: 1 + maxLength: 100 + description: Car model + example: Lamborghini + carNumber: + type: string + nullable: false + minLength: 6 + maxLength: 9 + description: Car number + example: A456BC123 + officeId: + type: integer + format: int64 + nullable: false + minimum: 1 + description: Office ID + example: 15 + required: + - firstName + - lastName + - carModel + - carNumber + - officeId + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + id: + type: integer + nullable: false + description: Pass ID + example: 2 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/passes/{passId}: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Passes + summary: Update pass + description: | + Updates the seller's pass detail + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Pass' + requestBody: + required: true + description: | + The total length of the full name is limited from 6 to 100 characters. The car number can contain only letters and numbers. + content: + application/json: + schema: type: object properties: - chrtID: - type: integer - description: ID размера - techSize: - type: string - description: Размер товара - wbSize: - type: string - description: Российский размер товара - skus: - type: array - description: Массив баркодов - items: - type: string - example: 12345Ejf5 - dimensions: - type: object - properties: - length: - type: integer - width: - type: integer - height: - type: integer - characteristics: - description: Массив характеристик, при наличии - type: array - items: + firstName: + type: string + nullable: false + minLength: 1 + description: First name + example: Alex + lastName: + type: string + nullable: false + minLength: 1 + description: Last name + example: Petrov + carModel: + type: string + nullable: false + minLength: 1 + maxLength: 100 + description: Car model + example: Lamborghini + carNumber: + type: string + nullable: false + minLength: 6 + maxLength: 9 + description: Car number + example: A456BC123 + officeId: + type: integer + format: int64 + nullable: false + minimum: 1 + description: Office ID + example: 15 + required: + - firstName + - lastName + - carModel + - carNumber + - officeId + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + WarehouseNameInvalid: + $ref: '#/components/examples/WarehouseNameInvalid' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + tags: + - Passes + summary: Delete the pass + description: | + Deletes the seller's pass + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Pass' + responses: + '204': + description: Deleted + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/new: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Get new orders + description: | + Returns a list of all new orders + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + orders: + type: array + nullable: false + description: New orders list + items: + $ref: '#/components/schemas/OrderNew' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Get orders + description: | + Returns orders information without current status.
You can get data for a specified period, maximum of 30 calendar days per request. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Next' + - name: dateFrom + in: query + schema: + type: integer + description: | + Period start date in Unix timestamp format. By default date is 30 days before the request + - name: dateTo + in: query + schema: + type: integer + description: Period end date in Unix timestamp format + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + next: + $ref: '#/components/schemas/Next' + orders: + type: array + nullable: false + items: + $ref: '#/components/schemas/Order' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/status: + servers: + - url: https://marketplace-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Get orders statuses + description: | + Returns the statuses of orders from the request. + + `supplierStatus` is a status of an order. Its change is always triggered only by the supplier.
+ + Possible values of `supplierStatus`: + | Status | Description | How to move the order to this status | + |-----------|--------------------------|---------------------------------------------| + | `new` | **New order** | | + | `confirm` | **In assembly**
For delivery by Wildberries `fbs` | [Add order to the supply](/openapi/orders-fbs#tag/Supplies-FBS/paths/~1api~1v3~1supplies~1%7BsupplyId%7D~1orders~1%7BorderId%7D/patch) + | `complete` | **In delivery**
For delivery by Wildberries `fbs` and by WB courier `wbgo` | For `fbs` — [transfer the supply to delivery](/openapi/orders-fbs#tag/Supplies-FBS/paths/~1api~1v3~1supplies~1%7BsupplyId%7D~1deliver/patch)
For `wbgo` — [transfer the order to delivery](/openapi/orders-fbs#tag/WB-Courier-Delivery-(DBW)/paths/~1api~1v3~1orders~1%7BorderId%7D~1assemble/patch) | + | `cancel` | **Canceled by seller** | [Cancel the order](/openapi/orders-fbs#tag/Assembly-Orders/paths/~1api~1v3~1orders~1%7BorderId%7D~1cancel/patch) + | `receive` | **Received by the buyer**
For WB courier `wbgo` | The status changes automatically | + | `reject` | **Buyer rejection upon receipt**
For WB courier `wbgo` | The status changes automatically | + + `wbStatus` — is a status of an order on the Wildberries side. + + Possible values for this field are: + - `waiting` — the supplier confirmed the order, and the Wildberries has not received it yet + - `sorted` — the Wildberries warehouse sorted the order + - `sold` — the order is sold + - `canceled` — the supplier canceled the order + - `canceled_by_client` — the buyer canceled the order upon receipt + - `declined_by_client` — the buyer canceled the order in the first hour
Cancellation is available to the buyer in the first hour from the moment of order, if the order is not transferred to confirm status. + - `defect` — cancellation of the order due to a defect + - `ready_for_pickup` — the order came at pickup point and waiting for the client + - `postponed_delivery` — courier delivery is postponed + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ requestBody: + content: + application/json: + schema: type: object + required: + - orders properties: - id: - type: integer - name: - type: string - value: - type: array - items: - type: string - createdAt: - type: string - trashedAt: - type: string - cursor: - type: object - properties: - trashedAt: - type: string - nmID: - type: integer - total: - type: integer - example: - cards: - - nmID: 1234567 - vendorCode: wb5xsy5ftj - subjectID: 1436 - subjectName: Ведра хозяйственные - sizes: - - chrtID: 111111111 - techSize: '0' - skus: - - xxxxxxxxxxxx - dimensions: - length: 0 - width: 0 - height: 0 - createdAt: '2023-12-05T14:55:09.323462Z' - trashedAt: '2023-12-06T10:57:42.193028Z' - cursor: - trashedAt: '2023-12-06T10:57:42.193028Z' - nmID: 194128521 - total: 1 - '400': - description: Неверная форма запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseBodyContentError403' - /api/v2/upload/task: - servers: - - url: https://discounts-prices-api.wb.ru - post: - security: - - HeaderApiKey: [] - tags: - - Установка цен и скидок - summary: Установить цены и скидки - description: | - Устанавливает цены и скидки для товаров - requestBody: - $ref: '#/components/requestBodies/SupplierTaskRequest' - responses: - '200': - $ref: '#/components/responses/SuccessTaskResponse' - '208': - $ref: '#/components/responses/Responses208' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseError' - examples: - GoodsNumberLimitExceeded: - $ref: '#/components/examples/GoodsNumberLimitExceeded' - DuplicatedNmIdInTask: - $ref: '#/components/examples/DuplicatedNmIdInTask' - NoGoodsForProcess: - $ref: '#/components/examples/NoGoodsForProcess' - FailedToParseData: - $ref: '#/components/examples/FailedToParseData' - PriceHasDecimalPlaces: - $ref: '#/components/examples/PriceHasDecimalPlaces' - WrongPriceValue: - $ref: '#/components/examples/WrongPriceValue' - WrongNmValue: - $ref: '#/components/examples/WrongNmValue' - BothDiscountAndPriceAreNotSet: - $ref: '#/components/examples/PriceNotSet' - EmptyData: - $ref: '#/components/examples/EmptyData' - NoValidGoodsInTask: - $ref: '#/components/examples/NoValidGoodsInTask' - '401': - $ref: '#/components/responses/Responses401' - '429': - $ref: '#/components/responses/ExceededLimitRequests429' - '500': - $ref: '#/components/responses/Responses500' - /api/v2/upload/task/size: - servers: - - url: https://discounts-prices-api.wb.ru - post: - security: - - HeaderApiKey: [] - tags: - - Установка цен и скидок - summary: Установить цены для размеров - description: | - Устанавливает цены отдельно для размеров. Работает только для товаров из категорий, где можно устанавливать цены отдельно для разных размеров. Для таких товаров в ответе метода [Получить товары по артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1size~1nm/get) `editableSizePrice: true`. - requestBody: - $ref: '#/components/requestBodies/SupplierTaskRequestSize' - responses: - '200': - $ref: '#/components/responses/SuccessTaskResponse' - '208': - $ref: '#/components/responses/Responses208' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseError' - examples: - GoodsNumberLimitExceeded: - $ref: '#/components/examples/GoodsNumberLimitExceeded' - DuplicatedNmIdInTask: - $ref: '#/components/examples/DuplicatedNmIdInTask' - NoGoodsForProcess: - $ref: '#/components/examples/NoGoodsForProcess' - FailedToParseData: - $ref: '#/components/examples/FailedToParseData' - PriceHasDecimalPlaces: - $ref: '#/components/examples/PriceHasDecimalPlaces' - WrongPriceValue: - $ref: '#/components/examples/WrongPriceValue' - WrongNmValue: - $ref: '#/components/examples/WrongNmValue' - BothDiscountAndPriceAreNotSet: - $ref: '#/components/examples/BothDiscountAndPriceAreNotSet' - EmptyData: - $ref: '#/components/examples/EmptyData' - NoValidGoodsInTask: - $ref: '#/components/examples/NoValidGoodsInTask' - '401': - $ref: '#/components/responses/Responses401' - '429': - $ref: '#/components/responses/ExceededLimitRequests429' - '500': - $ref: '#/components/responses/Responses500' - /api/v2/history/tasks: - servers: - - url: https://discounts-prices-api.wb.ru - get: - security: - - HeaderApiKey: [] - tags: - - Состояния загрузок - summary: Состояние обработанной загрузки - description: Возвращает информацию про обработанную загрузку - parameters: - - $ref: '#/components/parameters/uploadID' - responses: - '200': - $ref: '#/components/responses/ResponseTaskHistory' - '400': - $ref: '#/components/responses/ErrorWrongParameters' - '401': - $ref: '#/components/responses/ErrorUnknownUser' - 4XX: - $ref: '#/components/responses/ErrorResponse' - 5XX: - $ref: '#/components/responses/ErrorInternalResponse' - /api/v2/history/goods/task: - servers: - - url: https://discounts-prices-api.wb.ru - get: - security: - - HeaderApiKey: [] - tags: - - Состояния загрузок - summary: Детализация обработанной загрузки - description: Возвращает информацию о товарах в обработанной загрузке, в том числе, об ошибках в них - parameters: - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/uploadID' - responses: - '200': - $ref: '#/components/responses/ResponseGoodHistories' - '400': - $ref: '#/components/responses/ErrorWrongParameters' - '401': - $ref: '#/components/responses/ErrorUnknownUser' - 4XX: - $ref: '#/components/responses/ErrorResponse' - 5XX: - $ref: '#/components/responses/ErrorInternalResponse' - /api/v2/buffer/tasks: - servers: - - url: https://discounts-prices-api.wb.ru - get: - security: - - HeaderApiKey: [] - tags: - - Состояния загрузок - summary: Состояние необработанной загрузки - description: Возвращает информацию про загрузку в обработке - parameters: - - $ref: '#/components/parameters/uploadID' - responses: - '200': - $ref: '#/components/responses/ResponseTaskBuffer' - '400': - $ref: '#/components/responses/ErrorWrongParameters' - '401': - $ref: '#/components/responses/ErrorUnknownUser' - 4XX: - $ref: '#/components/responses/ErrorResponse' - 5XX: - $ref: '#/components/responses/ErrorInternalResponse' - /api/v2/buffer/goods/task: - servers: - - url: https://discounts-prices-api.wb.ru - get: - security: - - HeaderApiKey: [] - tags: - - Состояния загрузок - summary: Детализация необработанной загрузки - description: Возвращает информацию о товарах из загрузки в обработке, в том числе, об ошибках в них - parameters: - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/uploadID' - responses: - '200': - $ref: '#/components/responses/ResponseGoodBufferHistories' - '400': - $ref: '#/components/responses/ErrorWrongParameters' - '401': - $ref: '#/components/responses/ErrorUnknownUser' - 4XX: - $ref: '#/components/responses/ErrorResponse' - 5XX: - $ref: '#/components/responses/ErrorInternalResponse' - /api/v2/list/goods/filter: - servers: - - url: https://discounts-prices-api.wb.ru - get: - security: - - HeaderApiKey: [] - tags: - - Списки товаров - summary: Получить товары - description: Возвращает информацию о товаре по его артикулу. Чтобы получить информацию обо всех товарах, оставьте артикул пустым - parameters: - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/filterNmID' - responses: - '200': - $ref: '#/components/responses/ResponseGoodsLists' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseError' - examples: - SortError: - $ref: '#/components/examples/SortError' - InvalidQueryParams: - $ref: '#/components/examples/InvalidQueryParams' - '401': - $ref: '#/components/responses/Responses401' - '429': - $ref: '#/components/responses/ExceededLimitRequests429' - '500': - $ref: '#/components/responses/Responses500' - /api/v2/list/goods/size/nm: - servers: - - url: https://discounts-prices-api.wb.ru - get: - security: - - HeaderApiKey: [] - tags: - - Списки товаров - summary: Получить размеры товара - description: | - Возвращает информацию о всех размерах одного товара. Работает только для товаров из категорий, где можно устанавливать цены отдельно для разных размеров. Для таких товаров в ответе метода [Получить товары по артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1size~1nm/get) `editableSizePrice: true`. - parameters: - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/nmID' - responses: - '200': - $ref: '#/components/responses/ResponseSizeLists' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseError' - examples: - InvalidQueryParams: - $ref: '#/components/examples/InvalidQueryParams' - '401': - $ref: '#/components/responses/Responses401' - '429': - $ref: '#/components/responses/ExceededLimitRequests429' - '500': - $ref: '#/components/responses/Responses500' - /api/v1/acceptance/coefficients: - get: - security: - - HeaderApiKey: [] - tags: - - Информация для формирования поставок - summary: Коэффициенты приёмки - description: | - Возвращает коэффициенты приёмки для конкретных складов на ближайшие 14 дней.
Максимум 6 запросов в минуту - parameters: - - name: warehouseIDs - in: query - description: ID складов.
По умолчанию возвращаются данные по всем складам - schema: - type: string - example: 507,117501 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/models.AcceptanceCoefficient' - examples: - ResponseCoefficients: - $ref: '#/components/examples/ResponseCoefficients' - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/models.ErrorModel' - examples: - BadWarehouseIDsParam: - $ref: '#/components/examples/Response400Coefficients' - '401': - description: Ошибка авторизации - '403': - description: Доступ запрещён - '404': - description: Адрес не найден - '429': - description: Слишком много запросов - '500': - description: Внутренняя ошибка сервера - /api/v1/acceptance/options: - post: - security: - - HeaderApiKey: [] - tags: - - Информация для формирования поставок - summary: Опции приёмки - description: | - Возвращает информацию о том, какие склады и типы упаковки доступны для поставки. Список складов определяется по баркоду товара и его количеству.
Максимум 30 запросов в минуту - requestBody: - content: - application/json: - schema: - type: array - maxItems: 5000 - items: - $ref: '#/components/schemas/models.Good' - examples: - RequestOptions: - $ref: '#/components/examples/RequestOptions' - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/models.OptionsResultModel' - examples: - Response: - $ref: '#/components/examples/OptionsResponse' - '401': - description: Ошибка авторизации - '403': - description: Доступ запрещён - '404': - description: Адрес не найден - '429': - description: Слишком много запросов - '500': - description: Внутренняя ошибка сервера - x-codegen-request-body-name: goods - /api/v1/warehouses: - get: - security: - - HeaderApiKey: [] - tags: - - Информация для формирования поставок - summary: Список складов - description: | - Возвращает список складов Wildberries.
Максимум 6 запросов в минуту - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/models.WarehousesResultItems' - '401': - description: Ошибка авторизации - '403': - description: Доступ запрещён - '404': - description: Адрес не найден - '429': - description: Слишком много запросов - '500': - description: Внутренняя ошибка сервера - /api/v3/orders/new: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить список новых сборочных заданий - description: | - Возвращает список всех новых сборочных заданий у продавца на данный момент. - responses: - '200': - description: Список сборочных заданий - content: - application/json: - schema: - type: object - nullable: false - properties: - orders: - type: array - nullable: false - description: Список новых сборочных заданий - items: - $ref: '#/components/schemas/OrderNew' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить информацию по сборочным заданиям - description: | - Возвращает информацию по сборочным заданиям без их актуального статуса.
Данные по сборочному заданию, возвращающиеся в данном методе, не меняются.
Рекомендуется использовать для получения исторических данных. - parameters: - - $ref: '#/components/parameters/Limit' - - $ref: '#/components/parameters/Next' - - name: dateFrom - in: query - schema: - type: integer - description: Дата начала периода в формате Unix timestamp. Необязательный параметр. - - name: dateTo - in: query - schema: - type: integer - description: Дата конца периода в формате Unix timestamp. Необязательный параметр. - responses: - '200': - description: Список сборочных заданий - content: - application/json: - schema: - type: object - nullable: false - properties: - next: - $ref: '#/components/schemas/Next' - orders: - type: array - nullable: false - items: - $ref: '#/components/schemas/Order' - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/status: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить статусы сборочных заданий - description: | - Возвращает статусы сборочных заданий по переданному списку идентификаторов сборочных заданий. - - **supplierStatus** - статус сборочного задания, триггером изменения которого является сам продавец.
- Возможны следующие значения данного поля: - | Статус | Описание | Как перевести сборочное задание в данный статус | - | ------- | --------- | --------------------------------------| - | new | Новое сборочное задание | - | confirm | На сборке | При добавлении сборочного задания к поставке **PATCH** */api/v3/supplies/{supplyId}/orders/{orderId}* - | complete | В доставке | При переводе в доставку соответствующей поставки **PATCH** */api/v3/supplies/{supplyId}/deliver* - | cancel | Отменено продавцом | **PATCH** */api/v3/orders/{orderId}/cancel* - - - **wbStatus** - статус сборочного задания в системе Wildberries.
- Возможны следующие значения данного поля: - - **waiting** - сборочное задание в работе - - **sorted** - сборочное задание отсортировано - - **sold** - сборочное задание получено покупателем - - **canceled** - отмена сборочного задания - - **canceled_by_client** - покупатель отменил заказ при получении - - **declined_by_client** - покупатель отменил заказ в первый чаc new
Отмена доступна покупателю в первый час с момента заказа, если заказ не переведён на сборку - - **defect** - отмена сборочного задания по причине брака - - **ready_for_pickup** - сборочное задание прибыло на ПВЗ - requestBody: - content: - application/json: - schema: - type: object - required: - - orders - properties: - orders: - type: array - minItems: 1 - maxItems: 1000 - description: Список идентификаторов сборочных заданий - items: - type: integer - format: int64 - example: 5632423 - responses: - '200': - description: Список статусов сборочных заданий - content: - application/json: - schema: - type: object - properties: - orders: - type: array - nullable: false - items: - type: object - properties: - id: - type: integer - format: int64 - nullable: false - description: Идентификатор сборочного задания - example: 5632423 - supplierStatus: - type: string - nullable: false - description: Статус сборочного задания продавца (устанавливается продавцом) - enum: - - new - - confirm - - complete - - cancel - example: new - wbStatus: - type: string - nullable: false - description: Статус сборочного задания в системе Wildberries - enum: - - waiting - - sorted - - sold - - canceled - - canceled_by_client - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/orders/reshipment: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить все сборочные задания на повторную отгрузку - description: Возвращает все сборочные задания, требующие повторной отгрузки. new - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - orders: - description: Список заказов - type: array - items: - type: object - properties: - supplyID: - description: Идентификатор поставки - orderID: - description: Идентификатор сборочного задания - example: - orders: - - supplyID: WB-GI-1234567 - orderID: 5632423 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/{orderId}/cancel: - servers: - - url: https://suppliers-api.wildberries.ru - patch: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Отменить сборочное задание - description: Переводит сборочное задание в статус **cancel** ("Отменено продавцом"). - parameters: - - $ref: '#/components/parameters/Order' - responses: - '204': - description: Отменено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка обновления статуса - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - StatusMismatch: - $ref: '#/components/examples/StatusMismatch' - StatusChangeNotAllowed: - $ref: '#/components/examples/StatusChangeNotAllowed' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/{orderId}/meta/sgtin: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Закрепить за сборочным заданием КиЗ (маркировку Честного знака) - description: | - Метод позволяет закрепить за сборочным заданием КиЗ (маркировку Честного знака). new
Закрепление КиЗ за сборочным заданием возможно только в случае, если это поле возвращается в ответе метода **Получить метаданные сборочного задания**, а сборочное задание находится в статусе `confirm`.

Получить загруженные КиЗ можно методом Получить метаданные сборочного задания
С правилами работы с КиЗ можно ознакомиться тут: https://честныйзнак.рф

- parameters: - - $ref: '#/components/parameters/Order' - requestBody: - content: - application/json: - schema: - type: object - properties: - sgtins: - type: array - description: Массив КиЗов. Допускается от 16 до 135 символов для кода одной маркировки. - minItems: 1 - maxItems: 24 - items: - type: string - description: Код маркировки на упаковке. От 16 до 135 символов. - example: '1234567890123456' - responses: - '204': - description: Отправлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - FailedToUpdateMeta: - $ref: '#/components/examples/FailedToUpdateMeta' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка добавления маркировки. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/stickers: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить этикетки для сборочных заданий - description: | - Возвращает список этикеток по переданному массиву сборочных заданий. - Можно запросить этикетку в формате svg, zplv (вертикальный), zplh (горизонтальный), png. - - **Ограничения при работе с методом**: - - Нельзя запросить больше 100 этикеток за раз (не более 100 идентификаторов сборочных заданий в запросе). - - Метод возвращает этикетки только для сборочных заданий, находящихся на сборке (в статусе **confirm**). - - Доступные размеры: -
580x400 пикселей, при параметрах width = 58, height = 40
-
400x300 пикселей, при параметрах width = 40, height = 30
- parameters: - - name: type - in: query - required: true - description: Тип этикетки - schema: - type: string - enum: - - svg - - zplv - - zplh - - png - - name: width - in: query - required: true - description: Ширина этикетки - schema: - type: integer - enum: - - 58 - - 40 - - name: height - in: query - required: true - description: Высота этикетки - schema: - type: integer - enum: - - 40 - - 30 - requestBody: - content: - application/json: - schema: - type: object - properties: - orders: - type: array - minItems: 1 - maxItems: 100 - description: Массив идентификаторов сборочных заданий - items: - type: integer - format: int64 - example: 5346346 - responses: - '200': - description: Список этикеток - content: - application/json: - schema: - type: object - properties: - stickers: - type: array - nullable: false - items: - type: object - properties: - orderId: - type: integer - format: int64 - nullable: false - description: Идентификатор сборочного задания - example: 5346346 - partA: - type: integer - nullable: false - description: Первая часть идентификатора этикетки (для печати подписи) - example: 231648 - partB: - type: integer - nullable: false - description: Вторая часть идентификатора этикетки - example: 9753 - barcode: - type: string - nullable: false - description: Закодированное значение этикетки - example: '!uKEtQZVx' - file: - type: string - format: byte - nullable: false - description: Полное представление этикетки в заданном формате. (кодировка base64) - example: PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhLS0gR2VuZXJhdGVkIGJ5IFNWR28gLS0+Cjxzdmcgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiCiAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQwMCIgaGVpZQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzE4IiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzI2IiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzMwIiB5PSIyMCIgd2lkdGg9IjQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMjAiIHk9IjIwMCIgd2lkdGg9IjM1MCIgaGVpZ2h0PSI5MCIgc3R5bGU9ImZpbGw6YmxhY2siIC8+Cjx0ZXh0IHg9IjMwIiB5PSIyNDAiIHN0eWxlPSJmaWxsOndoaXRlO2ZvbnQtc2l6ZTozMHB0O3RleHQtYW5jaG9yOnN0YXJ0IiA+MjMxNjQ4PC90ZXh0Pgo8dGV4dCB4PSIzNTAiIHk9IjI3MCIgc3R5bGU9ImZpbGw6d2hpdGU7Zm9udC1zaXplOjUwcHQ7dGV4dC1hbmNob3I6ZW5kIiA+OTc1MzwvdGV4dD4KPC9zdmc+Cg== - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/{orderId}/meta: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить метаданные сборочного задания - description: | - Возвращает метаданные заказа.
Возможные метаданные:
**imei**
**uin**
**gtin**
**sgtin**
В ответе метода возвращаются метаданные, доступные для сборочного задания. Если ответ вернулся с пустой структурой **meta**, значит у сборочного задания нет метаданных, и добавление их не доступно. - parameters: - - $ref: '#/components/parameters/Order' - responses: - '200': - description: Метаданные заказа - content: - application/json: - schema: - type: object - nullable: false - properties: - meta: - $ref: '#/components/schemas/Meta' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Удалить метаданные сборочного задания - description: | - Удаляет значение метаданных заказа для переданного ключа.
Возможные метаданные:
**imei**
**uin**
**gtin**
**sgtin** new
Передается только одно значение. - parameters: - - $ref: '#/components/parameters/Order' - - name: key - in: query - schema: - type: string - description: Название метаданных для удаления (**imei**, **uin**, **gtin**, **sgtin**). Передается только одно значение. - responses: - '204': - description: Удалено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '409': - description: Ошибка удаления метаданных - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/{orderId}/meta/uin: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Закрепить за сборочным заданием УИН (уникальный идентификационный номер) - description: Обновляет УИН сборочного задания. У одного сборочного задания может быть только один УИН. Добавлять маркировку можно только для заказов в статусе `confirm` и доставка которых осуществляется силами Wildberries. - parameters: - - $ref: '#/components/parameters/Order' - requestBody: - content: - application/json: - schema: - type: object - properties: - uin: - type: string - minLength: 16 - maxLength: 16 - description: УИН - example: '1234567890123456' - required: - - uin - responses: - '204': - description: Обновлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - FailedToUpdateMeta: - $ref: '#/components/examples/FailedToUpdateMeta' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '409': - description: Ошибка обновления метаданных. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/{orderId}/meta/imei: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Закрепить за сборочным заданием IMEI - description: Обновляет IMEI сборочного задания. У одного сборочного задания может быть только один IMEI. Добавлять маркировку можно только для заказов в статусе `confirm` и доставка которых осуществляется силами Wildberries. - parameters: - - $ref: '#/components/parameters/Order' - requestBody: - content: - application/json: - schema: - type: object - properties: - imei: - type: string - minLength: 15 - maxLength: 15 - description: IMEI - example: '123456789012345' - required: - - imei - responses: - '204': - description: Обновлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - FailedToUpdateMeta: - $ref: '#/components/examples/FailedToUpdateMeta' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '409': - description: Ошибка обновления метаданных. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/orders/{orderId}/meta/gtin: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Закрепить за сборочным заданием GTIN - description: Обновляет GTIN сборочного задания. У одного сборочного задания может быть только один GTIN. Добавлять маркировку можно только для заказов в статусе `confirm` и доставка которых осуществляется силами Wildberries. - parameters: - - $ref: '#/components/parameters/Order' - requestBody: - content: - application/json: - schema: - type: object - properties: - gtin: - type: string - minLength: 13 - maxLength: 13 - description: GTIN - example: '1234567890123' - required: - - gtin - responses: - '204': - description: Обновлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - FailedToUpdateMeta: - $ref: '#/components/examples/FailedToUpdateMeta' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '409': - description: Ошибка обновления метаданных. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/files/orders/external-stickers: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - tags: - - Сборочные задания - summary: Получить список ссылок на этикетки для сборочных заданий, которые требуются при кроссбордере - description: | - Возвращает список ссылок на этикетки для сборочных заданий, которые требуются при кроссбордере. - - **Ограничения при работе с методом**: - - Нельзя запросить больше 100 этикеток за раз (не более 100 идентификаторов сборочных заданий в запросе). - - Метод возвращает этикетки только для сборочных заданий, находящихся в доставке (в статусе **complete**). - requestBody: - content: - application/json: - schema: - type: object - properties: - orders: - type: array - minItems: 1 - maxItems: 100 - description: Массив идентификаторов сборочных заданий - items: - type: integer - format: int64 - example: 5346346 - responses: - '200': - description: Список ссылок на этикетки - content: - application/json: - schema: - type: object - properties: - stickers: - type: array - nullable: false - items: - type: object - properties: - orderID: - type: integer - format: int64 - nullable: false - description: Идентификатор сборочного задания - example: 5346346 - url: - type: string - nullable: false - description: Ссылка, по которой можно получить этикетку для сборочного задания - example: http://.../some-sticker - parcelID: - type: string - nullable: false - description: Трек-номер в этикетке для отслеживания сборочного задания - example: WB0000000001 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Создать новую поставку - description: | - **Ограничения работы с поставками**: - - - Только для сборочных заданий по схеме "Везу на склад WB" - - При добавлении в поставку все передаваемые сборочные задания в статусе **new** ("Новое") будут автоматически переведены в статус **confirm** ("На сборке"). - - Обратите внимание, что если вы переведёте сборочное задание в статус **cancel** ("Отмена продавцом"), то сборочное задание автоматически удалится из поставки, если было прикреплено к ней. - - Поставку можно собрать только из сборочных заданий (заказов) одного габаритного типа (cargoType). Новая поставка не обладает габаритным признаком. При добавлении первого заказа в поставку она приобретает габаритный признак этого заказа. - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - minLength: 1 - maxLength: 128 - description: Наименование поставки - example: Тестовая поставка - responses: - '201': - description: Создано - content: - application/json: - schema: - type: object - properties: - id: - type: string - nullable: false - description: Идентификатор поставки - example: WB-GI-1234567 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - get: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Получить список поставок - description: | - Возвращает список поставок. - parameters: - - $ref: '#/components/parameters/Limit' - - $ref: '#/components/parameters/Next' - responses: - '200': - description: Список поставок - content: - application/json: - schema: - type: object - nullable: false - properties: - next: - $ref: '#/components/schemas/Next' - supplies: - type: array - nullable: false - description: Список поставок - items: - $ref: '#/components/schemas/Supply' - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/orders/{orderId}: - servers: - - url: https://suppliers-api.wildberries.ru - patch: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Добавить к поставке сборочное задание - description: | - Добавляет к поставке сборочное задание и переводит его в статус **confirm** ("На сборке").
Также может перемещать сборочное задание между активными поставками, либо из закрытой в активную при условии, что сборочное задание требует повторной отгрузки.

`Важно!`
В пустую поставку можно добавить сборочное задание любого габаритного типа.
После добавления первого задания поставка приобретает габаритный тип этого задания, см. значение поля `cargoType` в ответе метода "Получить информацию о поставке".
После этого добавить в поставку можно только те задания, габаритный тип которых соответствует таковому у поставки. - parameters: - - $ref: '#/components/parameters/Supply' - - $ref: '#/components/parameters/Order' - responses: - '204': - description: Задание закреплено за поставкой - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка добавления сборочного задания к поставке - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - FailedToAddSupplyOrder: - $ref: '#/components/examples/FailedToAddSupplyOrder' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Получить информацию о поставке - description: | - Возвращает информацию о поставке. - parameters: - - $ref: '#/components/parameters/Supply' - responses: - '200': - description: Информация о поставке - content: - application/json: - schema: - $ref: '#/components/schemas/Supply' - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Удалить поставку - description: Удаляет поставку, если она активна и за ней не закреплено ни одно сборочное задание. - parameters: - - $ref: '#/components/parameters/Supply' - responses: - '204': - description: Удалено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: За поставкой закреплены сборочные задания - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - SupplyHasOrders: - $ref: '#/components/examples/SupplyHasOrders' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/orders: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Получить сборочные задания в поставке - description: | - Возвращает сборочные задания, закреплённые за поставкой. - parameters: - - $ref: '#/components/parameters/Supply' - responses: - '200': - description: Список сборочных заданий - content: - application/json: - schema: - type: object - nullable: false - properties: - orders: - type: array - nullable: false - items: - $ref: '#/components/schemas/SupplyOrder' - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/deliver: - servers: - - url: https://suppliers-api.wildberries.ru - patch: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Передать поставку в доставку - description: | - Закрывает поставку и переводит все сборочные задания в ней в статус **complete** ("В доставке"). - После закрытия поставки новые сборочные задания к ней добавить будет невозможно. - Передать поставку в доставку можно только при наличии в ней хотя бы одного сборочного задания и отсутствии пустых коробов. - parameters: - - $ref: '#/components/parameters/Supply' - responses: - '204': - description: Передано в доставку - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка закрытия поставки - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - SupplyHasZeroOrders: - $ref: '#/components/examples/SupplyHasZeroOrders' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/barcode: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Получить QR поставки - description: | - Возвращает QR в svg, zplv (вертикальный), zplh (горизонтальный), png.
- Можно получить, только если поставка передана в доставку. -
Доступные размеры:
-
580x400 пикселей - parameters: - - $ref: '#/components/parameters/Supply' - - name: type - in: query - required: true - description: Тип этикетки - schema: - type: string - enum: - - svg - - zplv - - zplh - - png - responses: - '200': - description: QR поставки - content: - application/json: - schema: - type: object - nullable: false - properties: - barcode: - type: string - nullable: false - description: Закодированное значение этикетки (идентификатор поставки) - example: WB-GI-12345678 - file: - type: string - format: byte - nullable: false - description: Полное представление этикетки в заданном формате. (кодировка base64) - example: U3dhZ2dlciByb2Nrcw== - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка запроса данных - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - SupplyNotClosed: - $ref: '#/components/examples/SupplyNotClosed' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/trbx: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Получить список коробов поставки - description: | - Возвращает список коробов и идентификаторы заказов, входящих в них. - parameters: - - $ref: '#/components/parameters/Supply' - responses: - '200': - description: Список коробов - content: - application/json: - schema: - type: object - properties: - trbxes: - type: array - items: - $ref: '#/components/schemas/SupplyTrbx' - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - post: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Добавить короба к поставке - description: Добавляет требуемое количество коробов в поставку. Можно добавить, только пока поставка на сборке. - parameters: - - $ref: '#/components/parameters/Supply' - requestBody: - content: - application/json: - schema: - type: object - required: - - amount - properties: - amount: - type: integer - minimum: 1 - maximum: 1000 - description: Количество коробов, которые необходимо добавить к поставке. - example: 4 - responses: - '201': - description: Создано - content: - application/json: - schema: - type: object - properties: - trbxIds: - type: array - description: Список ID коробов, которые были созданы. - minItems: 1 - items: - type: string - example: WB-TRBX-1234567 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/FailedToAddSupplyTrbx' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Удалить короба из поставки - description: Убирает заказы из перечисленных коробов поставки и удаляет короба. Можно удалить, только пока поставка на сборке. - parameters: - - $ref: '#/components/parameters/Supply' - requestBody: - content: - application/json: - schema: - type: object - required: - - trbxIds - properties: - trbxIds: - type: array - description: Список ID коробов, которые необходимо удалить. - items: - type: string - example: WB-TRBX-1234567 - responses: - '204': - description: Удалено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/trbx/{trbxId}: - servers: - - url: https://suppliers-api.wildberries.ru - patch: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Добавить заказы к коробу - description: Добавляет заказы в короб для выбранной поставки. Можно добавить, только пока поставка на сборке. - parameters: - - $ref: '#/components/parameters/Supply' - - $ref: '#/components/parameters/Trbx' - requestBody: - content: - application/json: - schema: - type: object - required: - - orderIds - properties: - orderIds: - type: array - description: Список заказов, которые необходимо добавить в короб. - items: - type: integer - example: 1234567 - responses: - '204': - description: Добавлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/trbx/{trbxId}/orders/{orderId}: - servers: - - url: https://suppliers-api.wildberries.ru - delete: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Удалить заказ из короба - description: Удаляет заказ из короба выбранной поставки. Можно удалить, только пока поставка на сборке. - parameters: - - $ref: '#/components/parameters/Supply' - - $ref: '#/components/parameters/Trbx' - - $ref: '#/components/parameters/Order' - responses: - '204': - description: Удалено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/supplies/{supplyId}/trbx/stickers: - servers: - - url: https://suppliers-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - tags: - - Поставки - summary: Получить стикеры коробов поставки - description: | - Возвращает стикеры QR в svg, zplv (вертикальный), zplh (горизонтальный), png.
- Можно получить, только если в коробе есть заказы. -
Размер стикеров: 580x400 пикселей
- parameters: - - $ref: '#/components/parameters/Supply' - - name: type - in: query - required: true - description: Тип этикетки - schema: - type: string - enum: - - svg - - zplv - - zplh - - png - requestBody: - content: - application/json: - schema: - type: object - required: - - trbxIds - properties: - trbxIds: - type: array - description: Список ID коробов, по которым необходимо вернуть стикеры. - items: - type: string - example: WB-TRBX-1234567 - responses: - '200': - description: Стикеры коробов - content: - application/json: - schema: - type: object - nullable: false - properties: - stickers: - type: array - minItems: 1 - items: - $ref: '#/components/schemas/TrbxStickers' - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/stocks/{warehouseId}: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Остатки - summary: Обновить остатки товаров - description: | - Обновляет остатки товаров.
`Важно!` Имена параметров запроса не валидируются. При отправке некорректных имен Вы получите успешный ответ(204), но остатки не обновятся.
Тщательнее проверяйте данные перед отправкой. - parameters: - - $ref: '#/components/parameters/Warehouse' - requestBody: - content: - application/json: - schema: - type: object - required: - - stocks - properties: - stocks: - type: array - minItems: 1 - maxItems: 1000 - description: Массив баркодов товаров и их остатков - items: - type: object - properties: - sku: - type: string - description: Баркод - example: BarcodeTest123 - amount: - type: integer - maximum: 100000 - description: Остаток - example: 10 - responses: - '204': - description: Обновлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка обновления остатков - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Error' - example: - - code: SubjectDBSRestriction - message: Категория товара недоступна для продажи по схеме 'Везу на склад Wildberries'. - data: - - sku: skuTest1 - stock: 0 - - code: SubjectFBSRestriction - message: Категория товара недоступна для продажи по схеме 'Везу самостоятельно до покупателя'. - data: - - sku: skuTest2 - stock: 1 - - code: UploadDataLimit - message: Превышен лимит загружаемых данных - data: - - sku: skuTest2 - stock: 100001 - - code: CargoWarehouseRestriction - message: Выбранный склад не предназначен для крупногабаритных товаров. Добавьте их на соответствующий склад - data: - - sku: skuTest3 - stock: 10 - - code: NotFound - message: Не найдено - data: - - sku: skuTest4 - stock: 10 - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - security: - - HeaderApiKey: [] - tags: - - Остатки - summary: Удалить остатки товаров - description: Удаляет остатки товаров. **Внимание! Действие необратимо**. Удаленный остаток будет необходимо загрузить повторно для возобновления продаж. - parameters: - - $ref: '#/components/parameters/Warehouse' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - skus: - type: array - nullable: false - minItems: 1 - maxItems: 1000 - description: Массив баркодов - items: - type: string - nullable: false - example: BarcodeTest123 - responses: - '204': - description: Удалено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - description: Не найдены запрашиваемые данные - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - code: NotFound - message: Не найдено - data: - - skuTest1 - - skuTest2 - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - post: - security: - - HeaderApiKey: [] - tags: - - Остатки - summary: Получить остатки товаров - description: Возвращает остатки товаров. - parameters: - - $ref: '#/components/parameters/Warehouse' - requestBody: - required: true - content: - application/json: - schema: - type: object - nullable: false - properties: - skus: - type: array - description: Массив баркодов - minItems: 1 - maxItems: 1000 - items: - type: string - example: BarcodeTest123 - responses: - '200': - description: Список остатков - content: - application/json: - schema: - type: object - properties: - stocks: - type: array - nullable: false - items: - type: object - properties: - sku: - type: string - nullable: false - description: Баркод - example: BarcodeTest123 - amount: - type: integer - nullable: false - description: Остаток - example: 10 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - IncorrectRequest: - $ref: '#/components/examples/IncorrectRequest' - IncorrectParameter: - $ref: '#/components/examples/IncorrectParameter' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/offices: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Склады - summary: Получить список складов WB - description: Возвращает список всех складов WB для привязки к складам продавца. - responses: - '200': - description: Список складов WB - content: - application/json: - schema: - type: array - nullable: false - description: Список складов WB - items: - $ref: '#/components/schemas/Office' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/warehouses: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Склады - summary: Получить список складов продавца - description: Возвращает список всех складов продавца. - responses: - '200': - description: Список складов продавца - content: - application/json: - schema: - type: array - nullable: false - description: Список складов продавца - items: - $ref: '#/components/schemas/Warehouse' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - post: - security: - - HeaderApiKey: [] - tags: - - Склады - summary: Создать склад продавца - description: Создает склад продавца. Нельзя привязывать склад WB, который уже используется. - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - nullable: false - minLength: 1 - maxLength: 200 - description: Имя склада продавца - example: Склад Коледино - officeId: - type: integer - nullable: false - minimum: 1 - description: ID склада WB - example: 15 - required: - - name - - officeId - responses: - '201': - description: Создано - content: - application/json: - schema: - type: object - properties: - id: - type: integer - nullable: false - description: ID склада продавца - example: 2 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - WarehouseNameInvalid: - $ref: '#/components/examples/WarehouseNameInvalid' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка создания нового склада - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/warehouses/{warehouseId}: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Склады - summary: Обновить склад - description: Обновляет склад продавца. Изменение выбранного склада WB допустимо раз в сутки. Нельзя привязывать склад WB, который уже используется. - parameters: - - $ref: '#/components/parameters/Warehouse' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - nullable: false - minLength: 1 - maxLength: 200 - description: Имя склада продавца - example: Склад Коледино - officeId: - type: integer - nullable: false - minimum: 1 - description: Идентификатор склада WB - example: 15 - required: - - name - - officeId - responses: - '204': - description: Обновлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - WarehouseNameInvalid: - $ref: '#/components/examples/WarehouseNameInvalid' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '409': - description: Ошибка обновления склада - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - security: - - HeaderApiKey: [] - tags: - - Склады - summary: Удалить склад продавца - description: Удаляет склад продавца. - parameters: - - $ref: '#/components/parameters/Warehouse' - responses: - '204': - description: Удалено - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/passes/offices: + orders: + type: array + minItems: 1 + maxItems: 1000 + description: Order IDs + items: + type: integer + format: int64 + example: 5632423 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + orders: + type: array + nullable: false + items: + type: object + properties: + id: + type: integer + format: int64 + nullable: false + description: Order ID + example: 5632423 + supplierStatus: + type: string + nullable: false + description: Order status (set by the supplier) + enum: + - new + - confirm + - complete + - cancel + example: new + wbStatus: + type: string + nullable: false + description: Order status (on the Wildberries side) + enum: + - waiting + - sorted + - sold + - canceled + - canceled_by_client + - declined_by_client + - defect + - ready_for_pickup + - postponed_delivery + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/orders/reshipment: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Get all orders for re-shipment + description: | + Returns all orders that require re-shipment + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + orders: + description: Orders list + type: array + items: + type: object + properties: + supplyID: + description: Supply ID + orderID: + description: Order ID + example: + orders: + - supplyID: WB-GI-1234567 + orderID: 5632423 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/cancel: + servers: + - url: https://marketplace-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Cancel the order + description: | + Moves the order to `cancel` ("Canceled by the supplier") status. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + responses: + '204': + description: Canceled + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error updating a status + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + StatusMismatch: + $ref: '#/components/examples/StatusMismatch' + StatusChangeNotAllowed: + $ref: '#/components/examples/StatusChangeNotAllowed' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/stickers: + servers: + - url: https://marketplace-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Get orders stickers + description: | + Returns a list of stickers according to the requested orders. + You can request a sticker in `svg`, `zplv` (vertical), `zplh` (horizontal) and `png` formats. + + **Method limitations**: + - You cannot request more than 100 stickers at a time (no more than 100 order IDs in a request). + - The method returns stickers only for orders that are in assembly (in `confirm` status). + - Available dimensions: + - 580x400 px, with parameters `width` = 58, `height` = 40 + - 400x300 px, with parameters `width` = 40, `height` = 30 + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - name: type + in: query + required: true + description: Sticker format + schema: + type: string + enum: + - svg + - zplv + - zplh + - png + - name: width + in: query + required: true + description: Sticker width + schema: + type: integer + enum: + - 58 + - 40 + - name: height + in: query + required: true + description: Sticker height + schema: + type: integer + enum: + - 40 + - 30 + requestBody: + content: + application/json: + schema: + type: object + properties: + orders: + type: array + minItems: 1 + maxItems: 100 + description: Order IDs + items: + type: integer + format: int64 + example: 5346346 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + stickers: + type: array + nullable: false + items: + type: object + properties: + orderId: + type: integer + format: int64 + nullable: false + description: Order ID + example: 5346346 + partA: + type: string + nullable: false + description: The first part of the sticker identifier (for printing the signature) + example: '231648' + partB: + type: string + nullable: false + description: The second part of the sticker identifier (for printing the signature) + example: '9753' + barcode: + type: string + nullable: false + description: The encoded value of the sticker + example: '!uKEtQZVx' + file: + type: string + format: byte + nullable: false + description: Base64 encoded representation of the sticker in a requested format + example: PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhLS0gR2VuZXJhdGVkIGJ5IFNWR28gLS0+Cjxzdmcgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiCiAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQwMCIgaGVpZQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzE4IiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzI2IiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzMwIiB5PSIyMCIgd2lkdGg9IjQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMjAiIHk9IjIwMCIgd2lkdGg9IjM1MCIgaGVpZ2h0PSI5MCIgc3R5bGU9ImZpbGw6YmxhY2siIC8+Cjx0ZXh0IHg9IjMwIiB5PSIyNDAiIHN0eWxlPSJmaWxsOndoaXRlO2ZvbnQtc2l6ZTozMHB0O3RleHQtYW5jaG9yOnN0YXJ0IiA+MjMxNjQ4PC90ZXh0Pgo8dGV4dCB4PSIzNTAiIHk9IjI3MCIgc3R5bGU9ImZpbGw6d2hpdGU7Zm9udC1zaXplOjUwcHQ7dGV4dC1hbmNob3I6ZW5kIiA+OTc1MzwvdGV4dD4KPC9zdmc+Cg== + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/meta: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Get order metadata + description: | + Returns order metadata. +

+ Possible metadata are: + - `imei` — [IMEI](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1imei/put) + - `uin` — [UIN](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1uin/put) + - `gtin` — [GTIN](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1gtin/put) + - `sgtin` — [Data matrix code](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1sgtin/put) + - `expiration` — [Expiration date](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1expiration/put) + + If any of the metadata objects are not returned in the response, it means that the assembly order cannot have such metadata, and they cannot be added + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + meta: + $ref: '#/components/schemas/Meta' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Delete order metadata + description: | + Removes all order metadata values for the passed key. +

+ Possible metadata are: + - `imei` — [IMEI](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1imei/put) + - `uin` — [UIN](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1uin/put) + - `gtin` — [GTIN](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1gtin/put) + - `sgtin` — [Data matrix code](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta~1sgtin/put) + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + - name: key + in: query + schema: + type: string + description: Name of the metadata to remove (`imei`, `uin`, `gtin`, `sgtin`) + responses: + '204': + description: Deleted + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Error deleting metadata + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/meta/sgtin: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Add Data Matrix code to the order + description: | + The method allows attaching a Data Matrix code [Chestny ZNAK](https://chestnyznak.ru/en) to an order. + + Attaching a Data Matrix code to an order is only possible if this field is returned in the response of the method [to get the metadata of the order](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta/get), and the order is in the confirm status. + + The loaded Data Matrix code can be retrieved through the method [to get the metadata of the order](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta/get) + +
+ Requests limit per one seller's account for all methods for adding metadata: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1000 requests | 60 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + sgtins: + type: array + description: List of Data Matrix codes. + minItems: 1 + maxItems: 24 + items: + type: string + description: Label code on the package. From 16 to 135 characters. + example: '1234567890123456' + responses: + '204': + description: Sent + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error adding a Data Matrix code + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/meta/uin: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Add UIN (unique identification number) to the order + description: | + Sets the UIN for the order. The order can only have one UIN. You can add the code only for orders in the `confirm` status. + +
+ Requests limit per one seller's account for all methods for adding metadata: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1000 requests | 60 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + uin: + type: string + minLength: 16 + maxLength: 16 + description: UIN + example: '1234567890123456' + required: + - uin + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Error updating metadata + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/meta/imei: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Add IMEI to the order + description: | + Sets the IMEI for the order. +

+ The order can have only one IMEI. If a device has two IMEIs — IMEI and IMEI2 or IMEI1 and IMEI2 — you should only specify IMEI or IMEI1. You don't need to specify IMEI2. +

+ You can add the code only for orders in the `confirm` status. + +
+ Requests limit per one seller's account for all methods for adding metadata: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1000 requests | 60 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + imei: + type: string + minLength: 15 + maxLength: 15 + description: IMEI + example: '123456789012345' + required: + - imei + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Error updating metadata + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/meta/gtin: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Add GTIN to the order + description: | + Sets the GTIN (Belarus product unique identifier) for the order. The order can only have one GTIN. You can add the code only for orders in the `confirm` status. + +
+ Requests limit per one seller's account for all methods for adding metadata: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1000 requests | 60 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + gtin: + type: string + minLength: 13 + maxLength: 13 + description: GTIN + example: '1234567890123' + required: + - gtin + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '409': + description: Error updating metadata + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/meta/expiration: + servers: + - url: https://marketplace-api.wildberries.ru + put: + security: + - HeaderApiKey: [] + tags: + - Metadata + summary: Add expiration date to the order + description: | + Sets the expiration date for the order. +
+ The expiration date can only be added for orders that are delivered by WB and are in the `confirm` status. +
+
+ You can get the uploaded data in the [metadata of the assembly order](/openapi/orders-fbs#tag/Metadata/paths/~1api~1v3~1orders~1%7BorderId%7D~1meta/get). +
+ To change the expiration date, send a request with the new date. + It is impossible to remove the expiration date from the metadata of the assembly order. + +
+ Requests limit per one seller's account for all methods for adding metadata: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1000 requests | 60 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + requestBody: + content: + application/json: + schema: + type: object + properties: + expiration: + type: string + description: The date until which the product is valid. No less than 30 days from the current date. + format: date (dd.mm.yyyy) + example: 12.09.2030 + responses: + '204': + description: Sent + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + LowExpirationDate: + $ref: '#/components/examples/LowExpirationDate' + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error updating metadata + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToUpdateMeta: + $ref: '#/components/examples/FailedToUpdateMeta' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/files/orders/external-stickers: + servers: + - url: https://marketplace-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - Assembly Orders + summary: Get a list of links to stickers that are required for cross-bordering + description: | + Returns a list of links to stickers that are required for cross-bordering. + + **Method limitations**: + - You cannot request more than 100 stickers at a time (no more than 100 order IDs in a request). + - The method returns stickers only for orders that are in delivery (in `complete` status). + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ requestBody: + content: + application/json: + schema: + type: object + properties: + orders: + type: array + minItems: 1 + maxItems: 100 + description: Order IDs + items: + type: integer + format: int64 + example: 5346346 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + stickers: + type: array + nullable: false + items: + type: object + properties: + orderID: + type: integer + format: int64 + nullable: false + description: Order ID + example: 5346346 + url: + type: string + nullable: false + description: A link to the order sticker + example: http://.../some-sticker + parcelID: + type: string + nullable: false + description: Order tracking number in the sticker + example: WB0000000001 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/status/history: + post: servers: - - url: https://suppliers-api.wildberries.ru - get: - security: + - url: https://marketplace-api.wildberries.ru + security: - HeaderApiKey: [] - tags: - - Пропуска - summary: Получить список складов, для которых требуется пропуск - description: | - Возвращает список складов для привязки к пропуску продавца.
Обратите внимание: данные, которые возвращает метод, могут меняться. Рекомендуем периодически синхронизировать список. - responses: + tags: + - Assembly Orders + summary: Status history for cross-border orders + description: | + Returns status history for cross-border orders + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ requestBody: + content: + application/json: + schema: + type: object + properties: + orders: + description: Orders IDs + type: array + items: + type: integer + maxItems: 100 + minItems: 1 + example: + - 123456789 + - 987654321 + responses: '200': - description: Список складов, для которых требуется пропуск. - content: + description: Success + content: + application/json: + schema: + type: object + properties: + orders: + type: array + description: Orders + items: + type: object + properties: + deliveryDate: + type: string + description: Planned delivery date, [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) + statuses: + description: Statuses + type: array + items: + type: object + properties: + date: + type: string + description: Date of the status assignment + example: null + code: + type: string + description: | + Order status code: + - `accepted_by_carrier` — Product accepted by the carrier + - `assembling` — Sent for assembly + - `assembled` — Assembled at the warehouse + - `sorted` — Sorted + - `replaced_at_warehouse` — Replaced at the warehouse + - `prepared_for_shipment` — Prepared for shipment + - `in_search` — In search + - `arrived_at_dct` — Arrived at the distribution center-transit + - `arrived_at_sct` — Arrived at the sorting center-transit + - `arrived_at_dc` — Arrived at the distribution center + - `arrived_at_sc` — Arrived at the sorting center + - `prepared_for_shipment_at_sc` — Prepared for shipment at the sorting center + - `shipped_at_sc` — Shipped by the sorting center + - `shipped_at_dct` — Shipped by the distribution center — transit + - `shipped_at_dc` — Shipped by the distribution center + - `delivered_at_sc` — Delivered to the SC/DC + - `on_way_to_sc` — En route to the sorting center + - `on_way_to_dc` — En route to the distribution center + - `on_way_to_pp` — En route to the pickup point + - `arrived_at_pp` — Arrived at the pickup point + - `accepted_at_pp` — Received at the pickup point + - `ready_for_pick_up` — Ready for pickup + - `arrived_at_pp` — Arrived at the pickup point + - `received_by_client` — Received by the client + - `delivered_at_parcel_locker` — Delivered to the parcel locker + - `canceled_by_client` — Buyer canceled the order upon receipt + - `cancel_after_expiration` — Canceled due to storage time limit + - `at_courier` — Transferred to the courier + - `moved_to_return_box` — Moved to the return box + - `accepted_for_return` — Accepted for return at the pickup point + - `created` — Created + - `canceled_by_seller` — Canceled by the seller + - `dispatched_by_seller` — Shipped according to seller's data + - `delivered` — Order issued + - `on_way` — En route + - `arrived_at_wb_wh` — Arrived at the WB warehouse + - `dispatched_from_wh` — Sent from the warehouse + - `customs_clearance` — Customs clearance + - `customs_clearance_completed` — Released by customs + - `departed_from_origin_country` — Sent from the seller's country + - `arrived_in_destination_country` — Arrival in the destination country + - `on_way_to_wb_sc` — Sent to the WB SC + - `accepted_at_wb_sc` — Accepted by the WB SC + - `canceled` — Canceled + - `failed_to_reach_client` — Could not reach the client + example: SORTED + orderID: + description: Order ID + type: integer + example: 123456789 + '400': + description: Bad request + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/client: + servers: + - url: https://marketplace-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Orders with client information + description: | + The method allows getting information about the client by order ID.
Only for cross-border orders from **Turkey** + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ tags: + - Assembly Orders + requestBody: + required: true + content: application/json: - schema: - type: array - nullable: false - description: Список складов - items: - $ref: '#/components/schemas/PassOffice' - '401': - $ref: '#/components/responses/Unauthorized' + schema: + $ref: '#/components/schemas/OrdersRequestAPI' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CrossborderTurkeyClientInfoResp' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/passes/offices: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Пропуска - summary: Получить список складов, для которых требуется пропуск - description: | - Возвращает список складов для привязки к пропуску продавца.
Обратите внимание: данные, которые возвращает метод, могут меняться. Рекомендуем периодически синхронизировать список. - responses: - '200': - description: Список складов, для которых требуется пропуск. - content: - application/json: - schema: - type: array - nullable: false - description: Список складов - items: - $ref: '#/components/schemas/PassOffice' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/passes: - servers: - - url: https://suppliers-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Пропуска - summary: Получить список пропусков - description: Возвращает список всех пропусков продавца. - responses: - '200': - description: Список пропусков продавца - content: - application/json: - schema: - type: array - nullable: false - description: Список пропусков продавца - items: - $ref: '#/components/schemas/Pass' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - post: - security: - - HeaderApiKey: [] - tags: - - Пропуска - summary: Создать пропуск - description: | - Создает пропуск продавца.
Пропуск действует 48 часов со времени создания. Метод ограничен одним вызовом в 10 минут. - requestBody: - required: true - description: Общая длина ФИО ограничена от 6 до 100 символов. В номере машины могут быть только буквы и цифры. - content: - application/json: - schema: - type: object - properties: - firstName: - type: string - nullable: false - minLength: 1 - description: Имя водителя - example: Александр - lastName: - type: string - nullable: false - minLength: 1 - description: Фамилия водителя - example: Петров - carModel: - type: string - nullable: false - minLength: 1 - maxLength: 100 - description: Марка машины - example: Lamborghini - carNumber: - type: string - nullable: false - minLength: 6 - maxLength: 9 - description: Номер машины - example: A456BC123 - officeId: - type: integer - format: int64 - nullable: false - minimum: 1 - description: ID склада - example: 15 - required: - - firstName - - lastName - - carModel - - carNumber - - officeId - responses: - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - id: - type: integer - nullable: false - description: ID пропуска продавца - example: 2 - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v3/passes/{passId}: - servers: - - url: https://suppliers-api.wildberries.ru - put: - security: - - HeaderApiKey: [] - tags: - - Пропуска - summary: Обновить пропуск - description: Обновляет данные пропуска продавца. - parameters: - - $ref: '#/components/parameters/Pass' - requestBody: - required: true - description: Общая длина ФИО ограничена от 6 до 100 символов. В номере машины могут быть только буквы и цифры. - content: - application/json: - schema: - type: object - properties: - firstName: - type: string - nullable: false - minLength: 1 - description: Имя водителя - example: Александр - lastName: - type: string - nullable: false - minLength: 6 - description: Фамилия водителя - example: Петров - carModel: - type: string - nullable: false - minLength: 1 - maxLength: 100 - description: Марка машины - example: Lamborghini - carNumber: - type: string - nullable: false - minLength: 6 - maxLength: 9 - description: Номер машины - example: A456BC123 - officeId: - type: integer - format: int64 - nullable: false - minimum: 1 - description: ID склада - example: 15 - required: - - firstName - - lastName - - carModel - - carNumber - - officeId - responses: - '204': - description: Обновлено - '400': - description: Запрос содержит некорректные данные. Проверьте его на соответствие документации. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectRequestBody: - $ref: '#/components/examples/IncorrectRequestBody' - WarehouseNameInvalid: - $ref: '#/components/examples/WarehouseNameInvalid' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - security: - - HeaderApiKey: [] - tags: - - Пропуска - summary: Удалить пропуск - description: Удаляет пропуск продавца. - parameters: - - $ref: '#/components/parameters/Pass' - responses: - '204': - description: Удалено - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/ExceededLimitRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/supplier/incomes: - servers: - - url: https://statistics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Поставки - description: "Поставки. Максимум 1 запрос в\_минуту" - tags: - - Статистика - parameters: - - name: dateFrom - in: query - schema: - type: string - format: RFC3339 - required: true - description: | - Дата и время последнего изменения по поставке.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
- responses: - '200': - description: Список поставок - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IncomesItem' - example: - - incomeId: 12345 - number: '' - date: '2022-05-08T00:00:54' - lastChangeDate: '2022-05-08T00:44:15.5' - supplierArticle: ABCDEF - techSize: '0' - barcode: '2000328074123' - quantity: 3 - totalPrice: 0 - dateClose: '2022-05-08T00:00:00' - warehouseName: Подольск - nmId: 1234567 - status: Принято - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenIsNotApplicable: - $ref: '#/components/examples/TokenIsNotApplicable' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - examples: - RequestLimitStatistics: - $ref: '#/components/examples/RequestLimitStatistics' - /api/v1/supplier/stocks: - servers: - - url: https://statistics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Склад - description: "Остатки товаров на складах WB. Данные обновляются раз в 30 минут.
Сервис статистики не хранит историю остатков товаров, поэтому получить данные о них можно только в режиме \"на текущий момент\".
Максимум 1 запрос в\_минуту\n" - tags: - - Статистика - parameters: - - name: dateFrom - in: query - schema: - type: string - format: RFC3339 - required: true - description: | - Дата и время последнего изменения по товару.
Для получения полного остатка следует указывать максимально раннее значение.
Например, `2019-06-20`
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
- responses: - '200': - description: Список товаров на складе - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StocksItem' - example: - - lastChangeDate: '2023-07-05T11:13:35' - warehouseName: Краснодар - supplierArticle: '443284' - nmId: 1439871458 - barcode: '2037401340280' - quantity: 33 - inWayToClient: 1 - inWayFromClient: 0 - quantityFull: 34 - category: Посуда и инвентарь - subject: Формы для запекания - brand: X - techSize: '0' - Price: 185 - Discount: 0 - isSupply: true - isRealization: false - SCCode: Tech - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenIsNotApplicable: - $ref: '#/components/examples/TokenIsNotApplicable' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - examples: - RequestLimitStatistics: - $ref: '#/components/examples/RequestLimitStatistics' - /api/v1/supplier/orders: - servers: - - url: https://statistics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Заказы - description: "Заказы.
Гарантируется хранение данных не более 90 дней от даты заказа.
Данные обновляются раз в 30 минут.
Для идентификации заказа следует использовать поле `srid`.
1 строка = 1 заказ = 1 единица товара.
Максимум 1 запрос в\_минуту\n" - tags: - - Статистика - parameters: - - name: dateFrom - in: query - schema: - type: string - format: RFC3339 - required: true - description: | - Дата и время последнего изменения по заказу.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
- - $ref: '#/components/parameters/flag' - responses: - '200': - description: Список заказов - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/OrdersItem' - example: - - date: '2022-03-04T18:08:31' - lastChangeDate: '2022-03-06T10:11:07' - warehouseName: Подольск - countryName: Россия - oblastOkrugName: Центральный федеральный округ - regionName: Московская - supplierArticle: '12345' - nmId: 1234567 - barcode: '123453559000' - category: Бытовая техника - subject: Мультистайлеры - brand: Тест - techSize: '0' - incomeID: 56735459 - isSupply: false - isRealization: true - totalPrice: 1887 - discountPercent: 18 - spp: 26 - finishedPrice: 1145 - priceWithDisc: 1547 - isCancel: true - cancelDate: '2022-03-09T00:00:00' - orderType: Клиентский - sticker: '926912515' - gNumber: '34343462218572569531' - srid: 11.rf9ef11fce1684117b0nhj96222982382.3.0 - '400': - description: Ошибка в запросе - content: - application/json: - schema: - $ref: '#/components/schemas/responseErrorStatistics' - examples: - CantParseDateFrom: - $ref: '#/components/examples/CantParseDateFrom' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenIsNotApplicable: - $ref: '#/components/examples/TokenIsNotApplicable' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - examples: - RequestLimitStatistics: - $ref: '#/components/examples/RequestLimitStatistics' - /api/v1/supplier/sales: - servers: - - url: https://statistics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Продажи - description: "Продажи и возвраты.
Гарантируется хранение данных не более 90 дней от даты продажи.
Данные обновляются раз в 30 минут.
Для идентификации заказа следует использовать поле `srid`.
1 строка = 1 продажа/возврат = 1 единица товара.
Максимум 1 запрос в\_минуту\n" - tags: - - Статистика - parameters: - - name: dateFrom - in: query - schema: - type: string - format: RFC3339 - required: true - description: | - Дата и время последнего изменения по продаже/возврату.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
- - $ref: '#/components/parameters/flag' - responses: - '200': - description: Список продаж - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/SalesItem' - example: - - date: '2022-03-04T18:08:31' - lastChangeDate: '2022-03-06T10:11:07' - warehouseName: Подольск - countryName: Россия - oblastOkrugName: Центральный федеральный округ - regionName: Московская - supplierArticle: '12345' - nmId: 1234567 - barcode: '123453559000' - category: Бытовая техника - subject: Мультистайлеры - brand: Тест - techSize: '0' - incomeID: 56735459 - isSupply: false - isRealization: true - totalPrice: 1887 - discountPercent: 18 - spp: 20 - paymentSaleAmount: 93 - forPay: 1284.01 - finishedPrice: 1145 - priceWithDisc: 1547 - saleID: S9993700024 - orderType: Клиентский - sticker: '926912515' - gNumber: '34343462218572569531' - srid: 11.rf9ef11fce1684117b0nhj96222982382.3.0 - '400': - description: Ошибка в запросе - content: - application/json: - schema: - $ref: '#/components/schemas/responseErrorStatistics' - examples: - CantParseDateFrom: - $ref: '#/components/examples/CantParseDateFrom' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenIsNotApplicable: - $ref: '#/components/examples/TokenIsNotApplicable' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - examples: - RequestLimitStatistics: - $ref: '#/components/examples/RequestLimitStatistics' - /api/v5/supplier/reportDetailByPeriod: - servers: - - url: https://statistics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Отчет о продажах по реализации - description: "Детализация к еженедельному отчёту реализации. В отчёте доступны данные за последние 3 месяца. Максимум 1 запрос в\_минуту.\n\n
\n

Чтобы получить данные до 29\_января, используйте URL c v1: https://statistics-api.wildberries.ru/api/v1/supplier/reportDetailByPeriod

\n
\n\nЕсли нет данных за указанный период, метод вернет `null`.\n\n\nТехнический перерыв в работе метода: каждый понедельник с 3:00 до 16:00.\n\n\nИнструкция: Сохранение статистики в Excel\n" - tags: - - Статистика - parameters: - - name: dateFrom - in: query - schema: - type: string - format: RFC3339 - required: true - description: | - Начальная дата отчета.
Дата в формате RFC3339. Можно передать дату или дату со временем. Время можно указывать с точностью до секунд или миллисекунд.
Время передаётся в часовом поясе Мск (UTC+3).
Примеры:
  • `2019-06-20`
  • `2019-06-20T23:59:59`
  • `2019-06-20T00:00:00.12345`
  • `2017-03-25T00:00:00`
- - in: query - name: limit - schema: - type: integer - default: 100000 - required: false - description: Максимальное количество строк отчета, возвращаемых методом. Не может быть более 100000. - - in: query - name: dateTo - schema: - type: string - format: date - required: true - description: Конечная дата отчета - - in: query - name: rrdid - schema: - type: integer - required: false - description: | - Уникальный идентификатор строки отчета. Необходим для получения отчета частями. -
- Загрузку отчета нужно начинать с `rrdid = 0` и при последующих вызовах API передавать в запросе значение `rrd_id` из последней строки, полученной в результате предыдущего вызова. -
- Таким образом для загрузки одного отчета может понадобиться вызывать API до тех пор, пока количество возвращаемых строк не станет равным нулю. - responses: - '200': - description: Список реализованных позиций - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/DetailReportItem' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenIsNotApplicable: - $ref: '#/components/examples/TokenIsNotApplicable' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '429': - description: '' - content: - application/json: - schema: - oneOf: - - type: string - - $ref: '#/components/schemas/Response429' - examples: - TechnicalBreak: - value: 'Технический перерыв в работе метода: каждый понедельник с 3:00 до 16:00.' - RequestLimitStatistics: - $ref: '#/components/examples/RequestLimitStatistics' - /api/v2/nm-report/detail: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Воронка продаж - summary: Получение статистики КТ за выбранный период, по nmID/предметам/брендам/тегам - description: | - Получение статистики КТ за выбранный период, по nmID/предметам/брендам/тегам.
Поля `brandNames`,`objectIDs`, `tagIDs`, `nmIDs` могут быть пустыми, тогда в ответе идут все карточки продавца.
При выборе нескольких полей в ответ приходят данные по карточкам, у которых есть все выбранные поля. Работает с пагинацией.
- Можно получить отчёт максимум за последний год (365 дней).
- Также в данных, где предоставляется информация по предыдущему периоду: - * В `previousPeriod` данные за такой же период, что и в `selectedPeriod`. - * Если дата начала `previousPeriod` раньше, чем год назад от текущей даты, она будет приведена к виду: `previousPeriod.start = текущая дата - 365 дней.` - -
Максимум 3 запроса в минуту. - requestBody: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportDetailRequest' - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportDetailResponse' - '400': - description: Некорректный формат запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v2/nm-report/grouped: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Воронка продаж - summary: Получение статистики КТ за период, сгруппированный по предметам, брендам и тегам - description: | - Получение статистики КТ за период, сгруппированный по предметам, брендам и тегам.
Поля `brandNames`, `objectIDs`, `tagIDs` могут быть пустыми, тогда группировка происходит по всем карточкам продавца.
- Можно получить отчёт максимум за последний год (365 дней).
- Также в данных, где предоставляется информация по предыдущему периоду: - * В `previousPeriod` данные за такой же период, что и в `selectedPeriod`. - * Если дата начала `previousPeriod` раньше, чем год назад от текущей даты, она будет приведена к виду: `previousPeriod.start = текущая дата - 365 дней.` - -
Максимум 3 запроса в минуту. - requestBody: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportGroupedRequest' - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportGroupedResponse' - '400': - description: Некорректный формат запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v2/nm-report/detail/history: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Воронка продаж - summary: Получение статистики КТ по дням по выбранным nmID - description: | - Получение статистики КТ по дням по выбранным `nmID`. - Можно получить отчёт максимум за последнюю неделю. - Чтобы получать отчёты за период до года, подпишитесь на [расширенную аналитику Джем](https://seller.wildberries.ru/dynamic-product-categories/jam). -
Максимум 3 запроса в минуту. - requestBody: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportDetailHistoryRequest' - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportDetailHistoryResponse' - '400': - description: Некорректный формат запроса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещен - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v2/nm-report/grouped/history: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Воронка продаж - summary: Получение статистики КТ по дням за период, сгруппированный по предметам, брендам и тегам - description: | - Получение статистики КТ по дням за период, сгруппированный по предметам, брендам и тегам.
Поля `brandNames`, `objectIDs`, `tagIDs` могут быть пустыми, тогда группировка происходит по всем карточкам продавца.
В запросе произведение количества предметов, брендов, тегов не должно быть больше 16. - Можно получить отчёт максимум за последнюю неделю. - Чтобы получать отчёты за период до года, подпишитесь на [расширенную аналитику Джем](https://seller.wildberries.ru/dynamic-product-categories/jam). -
Максимум 3 запроса в минуту. - requestBody: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportGroupedHistoryRequest' - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportGroupedHistoryResponse' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v2/nm-report/downloads: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Воронка продаж (Джем) - security: - - HeaderApiKey: [] - summary: Создать отчёт - description: | - Вы можете создать отчёт с группировкой: - - * по артикулам Wildberries (`nmID`); - * по категориям, брендам и тегам. - - В каждом из этих отчётов можно сгруппировать данные по дням, неделям или месяцам. - - Максимум 3 запроса в минуту, при этом в сутки можно сгенерировать максимум 20 отчётов (считаются только успешные генерации). - requestBody: - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/BySelectedNmIDReq' - - $ref: '#/components/schemas/GroupedByObjectsBrandsAndTagsReq' - examples: - BySelectedNmID: - description: По артикулам Wildberries (`nmID`) - value: - id: 06eae887-9d9f-491f-b16a-bb1766fcb8d2 - reportType: DETAIL_HISTORY_REPORT - userReportName: Card report - params: - nmIDs: - - 1234567 - subjectIDs: - - 1234567 - brandNames: - - Name - tagIDs: - - 1234567 - startDate: '2023-06-21' - endDate: '2023-06-23' - timezone: Europe/Moscow - aggregationLevel: day - skipDeletedNm: false - GroupedByObjectsBrandsAndTags: - description: По категориям, брендам и тегам - value: - id: 06eea887-9d9f-491f-b16a-bb1766fcb8d2 - reportType: GROUPED_HISTORY_REPORT - userReportName: Subject report - params: - subjectIDs: - - 1234567 - brandNames: - - Name - tagIDs: - - 1234567 - startDate: '2023-06-21' - endDate: '2023-06-23' - timezone: Europe/Moscow - aggregationLevel: day - skipDeletedNm: false - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportCreateReportResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - get: - tags: - - Воронка продаж (Джем) - security: - - HeaderApiKey: [] - summary: Получить список отчётов - description: | - Максимум 3 запроса в минуту - parameters: - - in: query - name: filter[downloadIds] - description: ID отчёта - schema: - type: array - items: - type: string - format: uuid - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportGetReportsResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v2/nm-report/downloads/retry: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Воронка продаж (Джем) - security: - - HeaderApiKey: [] - summary: Сгенерировать отчёт повторно - description: | - Максимум 3 запроса в минуту - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportRetryReportRequest' - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/NmReportRetryReportResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/response429' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v2/nm-report/downloads/file/{downloadId}: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - tags: - - Воронка продаж (Джем) - security: - - HeaderApiKey: [] - summary: Получить отчёт - description: | - Можно получить отчёт, который сгенерирован в последние 48 часов.
Отчет будет загружен внутри архива ZIP в формате CSV.
- - Максимум 3 запроса в минуту. - parameters: - - in: path - name: downloadId - description: ID отчёта - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Успешно - content: - text/csv: - schema: - type: string - format: binary - description: | - Описание полей в файле CSV: - - | name | type | format | description | - |-----------------| --- | --- | --- | - | nmID (только для `DETAIL_HISTORY_REPORT`) | integer | int32 | Артикул Wildberries | - | dt | string | date | Дата | - | openCardCount | integer | int32 | Переходы в карточку товара | - | addToCartCount | integer | int32 | Положили в корзину, шт. | - | ordersCount | integer | int32 | Заказали товаров, шт. | - | ordersSumRub | integer | int32 | Заказали на сумму, ₽ | - | buyoutsCount | integer | int32 | Выкупили товаров, шт. | - | buyoutsSumRub | integer | int32 | Выкупили на сумму, ₽ | - | cancelCount | integer | int32 | Отменили товаров, шт. | - | cancelSumRub | integer | int32 | Отменили на сумму, ₽ | - | addToCartConversion | number | int32 | Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) | - | cartToOrderConversion | integer | int32 | Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) | - | buyoutPercent | integer | int32 | Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю) | - examples: - BySelectedNmIDRes: - $ref: '#/components/examples/BySelectedNmIDRes' - GroupedByObjectsBrandsAndTagsRes: - $ref: '#/components/examples/GroupedByObjectsBrandsAndTagsRes' - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '401': - description: Пользователь не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/response401' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - '429': - description: Слишком много запросов - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/response429' - - $ref: '#/components/schemas/response429Daily' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/responseError' - /api/v1/analytics/excise-report: - servers: - - url: https://seller-analytics-api.wildberries.ru - post: - tags: - - Товары с обязательной маркировкой - summary: Отчёт по товарам с обязательной маркировкой - description: | - Возвращает операции по маркируемым товарам. Максимум 10 запросов за 5 часов. - parameters: - - $ref: '#/components/parameters/DateTimeFrom' - - $ref: '#/components/parameters/DateTimeTo' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExciseReportRequest' - required: false - responses: - '200': - description: Отчёт - content: - application/json: - schema: - $ref: '#/components/schemas/ExciseReportResponse' - '400': - $ref: '#/components/responses/Response400' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/paid_storage: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Платное хранение - summary: Создать отчёт - description: | - Создаёт задание на генерацию отчёта. Можно получить отчёт максимум за 8 дней. - Максимум 1 запрос в минуту - parameters: - - name: dateFrom - in: query - required: true - schema: - type: string - example: '2022-01-01' - description: | - Начало отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: - - * `2019-06-20` - * `2019-06-20T23:59:59` - * `2019-06-20T00:00:00.12345` - * `2017-03-25T00:00:00` - - - name: dateTo - in: query - required: true - schema: - type: string - example: '2022-01-09' - description: | - Конец отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: - - * `2019-06-20` - * `2019-06-20T23:59:59` - * `2019-06-20T00:00:00.12345` - * `2017-03-25T00:00:00` - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTaskResponse' - examples: - CreateResponseData: - $ref: '#/components/examples/CreateResponseData' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - example: - errors: - - dateTo should be greater dateFrom - '404': - $ref: '#/components/responses/NotFound' - '429': - description: Слишком много запросов - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/paid_storage/tasks/{task_id}/status: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Платное хранение - summary: Проверить статус - description: | - Возвращает статус задания на генерацию. Максимум 1 запрос в 5 секунд - parameters: - - name: task_id - in: path - required: true - schema: - type: string - example: 06e06887-9d9f-491f-b16a-bb1766fcb8d2 - description: | - ID задания на генерацию - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/GetTasksResponse' - examples: - GetTasksResponseData: - $ref: '#/components/examples/GetTasksResponseData' - '400': - $ref: '#/components/responses/Response400' - '404': - $ref: '#/components/responses/NotFound' - '429': - description: Слишком много запросов - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/paid_storage/tasks/{task_id}/download: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Платное хранение - summary: Получить отчёт - description: Возвращает отчёт по ID задания. Максимум 1 запрос в минуту - parameters: - - name: task_id - in: path - required: true - schema: - type: string - example: 06e06887-9d9f-491f-b16a-bb1766fcb8d2 - description: | - ID задания на генерацию - responses: - '200': - description: Отчёт - content: - application/json: - schema: - $ref: '#/components/schemas/ResponsePaidStorage' - example: - - date: '2023-10-01' - logWarehouseCoef: 1 - officeId: 507 - warehouse: Коледино - warehouseCoef: 1.7 - giId: 123456 - chrtId: 1234567 - size: '0' - barcode: '' - subject: Маски одноразовые - brand: 1000 Каталог - vendorCode: '567383' - nmId: 1234567 - volume: 12 - calcType: 'короба: без габаритов' - warehousePrice: 7.65 - barcodesCount: 1 - palletPlaceCode: 0 - palletCount: 0 - originalDate: '2023-03-01' - loyaltyDiscount: 10 - tariffFixDate: '2023-10-01' - tariffLowerDate: '2023-11-01' - '400': - $ref: '#/components/responses/Response400' - '404': - $ref: '#/components/responses/NotFound' - '429': - description: Слишком много запросов - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/analytics/acceptance-report: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Платная приёмка - summary: Получить отчёт - description: | - Возвращает даты и стоимость приёмки. Можно получить отчёт максимум за 31 день. - - Максимум 1 запрос в минуту - parameters: - - $ref: '#/components/parameters/DateFrom' - - $ref: '#/components/parameters/DateTo' - responses: - '200': - $ref: '#/components/responses/SuccessReceivingResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - type: object - properties: - errors: - type: array - items: - type: string - examples: - MissingDateTimeFrom: - $ref: '#/components/examples/MissingDateTimeFrom' - MissingDateTimeTo: - $ref: '#/components/examples/MissingDateTimeTo' - IncorrectDateTimeFrom: - $ref: '#/components/examples/IncorrectDateTimeFrom' - IncorrectDateTimeTo: - $ref: '#/components/examples/IncorrectDateTimeTo' - DateRangeExceeded: - $ref: '#/components/examples/DateRangeExceeded' - DateRanges: - $ref: '#/components/examples/DateRanges' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInternalResponse' - /api/v1/analytics/antifraud-details: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Отчёты по удержаниям - summary: Самовыкупы - description: | - Возвращает отчёт по удержаниям за самовыкупы. Отчёт формируется каждую неделю по средам, до 7:00 по московскому времени, и содержит данные за одну неделю. Также можно получить отчёт за всё время с августа 2023. -

- Удержание за самовыкуп — это 30% от стоимости товаров. Минимальная сумма всех удержаний — 100 000 ₽, если за неделю в ПВЗ привезли больше ваших товаров, чем на 100 000 ₽. -

- Максимум 10 запросов за 100 минут. - parameters: - - $ref: '#/components/parameters/Date' - responses: - '200': - $ref: '#/components/responses/SuccessTaskResponse' - '400': - description: Неправильный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - example: - errors: - - date year should be greater or equal 2023 - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/analytics/incorrect-attachments: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Отчёты по удержаниям - summary: Подмена товара - description: | - Возвращает отчёт об удержаниях за отправку не тех товаров, пустых коробок или коробок без товара, но с посторонними предметами. В таких случаях удерживается 100% от стоимости заказа. - - Можно получить отчёт максимум за 31 день, доступны данные с июня 2023. - - Максимум 1 запрос в минуту. - parameters: - - $ref: '#/components/parameters/DateFrom' - - $ref: '#/components/parameters/DateTo' - responses: - '200': - $ref: '#/components/responses/SuccessIncorrectProductsResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - type: object - properties: - errors: - type: array - items: - type: string - examples: - MissingDateTimeFrom: - $ref: '#/components/examples/MissingDateTimeFrom' - MissingDateTimeTo: - $ref: '#/components/examples/MissingDateTimeTo' - IncorrectDateTimeFrom: - $ref: '#/components/examples/IncorrectDateTimeFrom' - IncorrectDateFrom1: - $ref: '#/components/examples/IncorrectDateFrom1' - IncorrectDateTimeTo: - $ref: '#/components/examples/IncorrectDateTimeTo' - DateRangeExceeded: - $ref: '#/components/examples/DateRangeExceeded' - DateRanges: - $ref: '#/components/examples/DateRanges' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/analytics/storage-coefficient: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Отчёты по удержаниям - summary: Коэффициент логистики и хранения - description: | - Возвращает коэффициенты логистики и хранения. Они рассчитываются на неделю (с понедельника по воскресенье). - - Можно получить данные с 31.10.2022. - - **Максимум 1 запрос в минуту.** - - **Как это работает** - - - В начале каждой недели для продавца рассчитывается новый коэффициент логистики и хранения. Затем стоимость логистики и хранения умножается на коэффициент этой недели. - - - **Как считается коэффициент** - - На основе расхождения фактических и заявленных габаритов упаковки товара: - - 1. Измеряем товары.
Работники склада измеряют по одному товару каждого наименования, с учётом упаковки (кроме товаров меньше 2 л). Для расчёта используются измерения за 30 дней до начала текущей недели. - - 2. Считаем коэффициент для товара.
Результаты измерений сравниваются с габаритами из карточки товара. В зависимости от разницы каждому наименованию присваивается коэффициент по товару. - - 3. Считаем коэффициент логистики и хранения.
Коэффициент логистики и хранения — это средний коэффициент по товарам.
- - Коэффициент логистики и хранения равен 1, если - - * По товарам продавца сделано меньше 10 уникальных измерений. - * Средняя разница в габаритах не больше 10%. - - Для продавцов с коэффициентом 1 стоимость логистики и хранения не увеличится. - parameters: - - $ref: '#/components/parameters/DateBasic' - responses: - '200': - $ref: '#/components/responses/SuccessCoefficientResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - type: object - properties: - errors: - type: array - items: + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies: + servers: + - url: https://marketplace-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Create a new supply + description: | + **Supplies limitations**: + + - Supplies applicable only for orders in the FBS (Fulfillment by Seller) delivery. + - All orders added to supply automatically transferred from the `new` status to the `confirm` status. + - Please note that if you will `cancel` (`Canceled by the seller`) the order, we will automatically remove it from the supply. + - A supply can only be assembled from assembly jobs (orders) with the same dimensional type (cargoType). A new supply does not have a dimensional attribute. When the first order is added to a supply, the supply acquires the dimensional attribute of that order. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 128 + description: Supply name + example: Some test supply + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + id: + type: string + nullable: false + description: Supply ID + example: WB-GI-1234567 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + get: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Get a supplies list + description: | + Returns the supply list. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Next' + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + next: + $ref: '#/components/schemas/Next' + supplies: + type: array + nullable: false + description: Supplies list + items: + $ref: '#/components/schemas/Supply' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/orders/{orderId}: + servers: + - url: https://marketplace-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Add the order to the supply + description: | + Adds an order to a supply and moves it to `confirm` status.
It can also move the order between active supplies. Or from a closed to an active supply, if the order requires reshipment. +
+ You can add an order of any dimensional type to an empty supply. After adding the first task, the supply acquires the dimensional type of this task from the cargoType field in the field.
After that, you can only add tasks of the same dimensional type as the supply. +
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1000 requests | 60 milliseconds | 20 requests | +
+ parameters: + - $ref: '#/components/parameters/Supply' + - $ref: '#/components/parameters/Order' + responses: + '204': + description: The order assigned to the supply + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error adding the order to the supply + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + FailedToAddSupplyOrder: + $ref: '#/components/examples/FailedToAddSupplyOrder' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Get supply details + description: | + Returns supply details. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Supply' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Delete the supply + description: | + Deleted the supply if it is active and does not contain any orders. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + responses: + '204': + description: Deleted + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: The supply contains orders + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + SupplyHasOrders: + $ref: '#/components/examples/SupplyHasOrders' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/orders: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Get the supply orders + description: | + Returns orders assigned to the supply. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + orders: + type: array + nullable: false + items: + $ref: '#/components/schemas/SupplyOrder' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/deliver: + servers: + - url: https://marketplace-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Move the supply to the delivery + description: | + Closes the supply and moves all orders to `complete` (`In Delivery`) status. You cannot add any orders to the supply after it is closed. + + If the supply wasn't handed over for delivery, than scanning its QR code or accepting the first product will automatically close the supply. + + You can transfer the supply to delivery only if it contains at least one order and no empty boxes. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + responses: + '204': + description: The supply moved to the delivery + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error closing supply + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + SupplyHasZeroOrders: + $ref: '#/components/examples/SupplyHasZeroOrders' + UinIsNotFilled: + $ref: '#/components/examples/UinIsNotFilled' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/barcode: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Get the supply QR code + description: | + Returns the QR code in svg, zplv (vertical), zplh (horizontal), png.
+ Available only after the supply has been transferred to the delivery. + Available dimensions: +
580x400 px + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + - name: type + in: query + required: true + description: Sticker format + schema: type: string - examples: - ErrorEarlytDate: - $ref: '#/components/examples/ErrorEarlytDate' - MissingDate: - $ref: '#/components/examples/MissingDate' - IncorrectDate: - $ref: '#/components/examples/IncorrectDate' - '429': - description: Слишком много запросов - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorInternalResponse' - /api/v1/analytics/goods-labeling: - servers: - - url: https://seller-analytics-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - tags: - - Отчёты по удержаниям - summary: Маркировка товара - description: | - Возвращает отчёт о штрафах за отсутствие обязательной маркировки товаров.
В отчёте представлены фотографии товаров, на которых маркировка отсутствует либо не считывается.
Можно получить данные максимум за 31 день, начиная с марта 2024.
Максимум 10 запросов за 10 минут - parameters: - - $ref: '#/components/parameters/DateFromGoodsLabeling' - - $ref: '#/components/parameters/DateToGoodsLabeling' - responses: - '200': - $ref: '#/components/responses/SuccessGoodsLabelingResponse' - '400': - description: Некорректный запрос - content: - application/json: - schema: - type: object - properties: - errors: - type: array - items: + enum: + - svg + - zplv + - zplh + - png + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + barcode: + type: string + nullable: false + description: The encoded value of the sticker (supply id) + example: WB-GI-12345678 + file: + type: string + format: byte + nullable: false + description: Base64 encoded sticker file in the requested format. + example: U3dhZ2dlciByb2Nrcw== + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Error requesting data + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + SupplyNotClosed: + $ref: '#/components/examples/SupplyNotClosed' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/trbx: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Get supply boxes list + description: | + Returns supply boxes list with assigned orders + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + trbxes: + type: array + items: + $ref: '#/components/schemas/SupplyTrbx' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + post: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Add boxes to the supply + description: | + Adds the required number of boxes to the supply. +
+
+ Boxes should only be added to deliveries shipped to the pickup points. + Available only while the supply is being assembled + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + requestBody: + content: + application/json: + schema: + type: object + required: + - amount + properties: + amount: + type: integer + minimum: 1 + maximum: 1000 + description: Boxes amount to add to the supply. + example: 4 + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + trbxIds: + type: array + description: List of IDs of created boxes. + minItems: 1 + items: + type: string + example: WB-TRBX-1234567 + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Delete boxes from the supply + description: | + Removes orders from the listed delivery boxes and deletes the boxes. Available only while the supply is being assembled + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + requestBody: + content: + application/json: + schema: + type: object + required: + - trbxIds + properties: + trbxIds: + type: array + description: List of box IDs to delete from the supply. + items: + type: string + example: WB-TRBX-1234567 + responses: + '204': + description: Deleted + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/trbx/{trbxId}: + servers: + - url: https://marketplace-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Add orders to the box + description: | + Add orders to the supply box. Available only while the supply is being assembled. + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + - $ref: '#/components/parameters/Trbx' + requestBody: + content: + application/json: + schema: + type: object + required: + - orderIds + properties: + orderIds: + type: array + description: List of orders to be added to the box. + items: + type: integer + example: 1234567 + responses: + '204': + description: Added + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/trbx/{trbxId}/orders/{orderId}: + servers: + - url: https://marketplace-api.wildberries.ru + delete: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Delete order from the box + description: | + Deletes order from the supply box. Available only while the supply is being assembled + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + - $ref: '#/components/parameters/Trbx' + - $ref: '#/components/parameters/Order' + responses: + '204': + description: Deleted + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/supplies/{supplyId}/trbx/stickers: + servers: + - url: https://marketplace-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + tags: + - FBS Supplies + summary: Get the supply box QR code stickers + description: | + Returns QR-code stickers in svg, zplv (vertical), zplh (horizontal), png.
+ Available only if there are orders in the box. +
Stickers dimensions: 580x400 px
+ +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Supply' + - name: type + in: query + required: true + description: Sticker format + schema: type: string - examples: - MissingDateTimeFrom: - $ref: '#/components/examples/MissingDateTimeFrom' - MissingDateTimeTo: - $ref: '#/components/examples/MissingDateTimeTo' - IncorrectDateTimeFrom: - $ref: '#/components/examples/IncorrectDateTimeFrom' - IncorrectDateTimeTo: - $ref: '#/components/examples/IncorrectDateTimeTo' - DateRangeExceeded: - $ref: '#/components/examples/DateRangeExceeded' - DateRanges: - $ref: '#/components/examples/DateRanges' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - description: Слишком много запросов - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/analytics/characteristics-change: - get: - servers: - - url: https://seller-analytics-api.wildberries.ru - security: - - HeaderApiKey: [] - tags: - - Отчёты по удержаниям - summary: Смена характеристик - description: | - Возвращает отчёт об удержаниях за смену характеристик товара. Если товары после приёмки не соответствуют заявленным цветам и размерам, и на складе их перемаркировали с правильными характеристиками, по таким товарам назначается штраф.
Можно получить отчёт максимум за 31 день, доступны данные с 28 декабря 2021.
Максимум 10 запросов за 10 минут - parameters: - - in: query - name: dateFrom - required: true - description: Начало отчётного периода, `ГГГГ-ММ-ДД` - schema: - type: string - format: date - example: {} - - in: query - name: dateTo - required: true - description: Конец отчётного периода, `ГГГГ-ММ-ДД` - schema: - type: string - format: date - example: {} - responses: - '200': - $ref: '#/components/responses/SuccessCharacteristicsTaskResponse' - '400': - $ref: '#/components/responses/400BadRequestResponse' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - description: Слишком много запросов - '500': - $ref: '#/components/responses/InternalServerError' - /adv/v1/save-ad: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Создать автоматическую кампанию - description: | - Создают автоматическую кампанию.
- Максимум 1 запрос в 20 секунд. - tags: - - Продвижение - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - type: - description: | -
-
Тип автоматической кампании:
-
8 -
- type: integer - example: 8 - name: - description: Название кампании (max. 128 символов) - type: string - example: Парашюты - subjectId: + enum: + - svg + - zplv + - zplh + - png + requestBody: + content: + application/json: + schema: + type: object + required: + - trbxIds + properties: + trbxIds: + type: array + description: List of supply box IDs for the sticker generation + items: + type: string + example: WB-TRBX-1234567 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + nullable: false + properties: + stickers: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/TrbxStickers' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/confirm: + servers: + - url: https://marketplace-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - WB Courier Delivery (DBW) + summary: Transfer to assembly + description: | + Transfers the order to the status `confirm` (`On assembly`) + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/OrderID' + responses: + '204': + description: Confirmed + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Status update error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + StatusMismatch: + $ref: '#/components/examples/StatusMismatch' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/orders/{orderId}/assemble: + servers: + - url: https://marketplace-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - WB Courier Delivery (DBW) + summary: Transfer to delivery + description: | + Transfers order to the status `complete` — in delivery + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Order' + responses: + '204': + description: Confirmed + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + '404': + $ref: '#/components/responses/NotFound' + '409': + description: Status update error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + StatusMismatch: + $ref: '#/components/examples/StatusMismatch' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v3/warehouses/{warehouseId}/contacts: + servers: + - url: https://marketplace-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - WB Courier Delivery (DBW) + summary: Contacts list + description: | + Returns a list of contacts linked to the seller's warehouse + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ parameters: + - $ref: '#/components/parameters/Warehouse' + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + nullable: false + description: Seller's warehouse contact list + items: + $ref: '#/components/schemas/StoreContactResponseBody' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + put: + security: + - HeaderApiKey: [] + tags: + - WB Courier Delivery (DBW) + summary: Update contacts list + parameters: + - $ref: '#/components/parameters/Warehouse' + description: | + Updates the seller's warehouse contact list.
+ +
+ The contact list is overwritten upon update. Therefore, you need to include all contact list parameters in the request, including those you do not intend to update. +
+ + Only for warehouses with delivery type `3` — WB courier.
+ + A maximum of 5 contacts can be added to the warehouse. + To delete contacts, send an empty `contacts` array + +
+ Requests limit per one seller's account for all methods in the Marketplace category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 300 requests | 200 milliseconds | 20 requests | + + One request with a response code of 409 is counted as 5 requests +
+ requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/StoreContactRequestBody' + responses: + '204': + description: Updated + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + IncorrectParameter: + $ref: '#/components/examples/IncorrectParameter' + IncorrectRequestBody: + $ref: '#/components/examples/IncorrectRequestBody' + UploadDataLimit: + $ref: '#/components/examples/UploadDataLimit' + IncorrectRequest: + $ref: '#/components/examples/IncorrectRequest' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + $ref: '#/components/responses/AccessDenied' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/promotion/count: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Campaigns lists + description: | + Method allows to get campaigns lists grouped by type and status with information about last campaign change date. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + adverts: + type: array + nullable: true + description: Campaign data + items: + type: object + properties: + type: + description: Campaign type + type: integer + status: + description: Campaign status + type: integer + count: + description: Campaigns number + type: integer + advert_list: + description: Campaigns list + type: array + items: + type: object + properties: + advertId: + description: Campaign ID + type: integer + changeTime: + description: Date and time of the last campaign change + type: string + format: date-time + all: + description: Total number of campaigns with all statuses and types + type: integer + example: + adverts: + - type: 4 + status: 8 + count: 3 + advert_list: + - advertId: 6485174 + changeTime: '2023-05-10T12:12:52.676254+03:00' + - advertId: 6500443 + changeTime: '2023-05-10T17:08:46.370656+03:00' + - advertId: 7936341 + changeTime: '2023-07-12T15:51:08.367478+03:00' + all: 3 + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/config: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Promotional configuration values + description: | + The method provides acceptable values for the main configuration parameters of campaigns + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 1 request | 1 minute | 1 request | +
+ tags: + - Campaigns Creation + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + categories: + type: array + description: List of product categories (subjects) with minimum allowable rates + items: + $ref: '#/components/schemas/V0GetConfigCategoriesResponse' + config: + type: array + description: List of the main configuration parameters with acceptable values + items: + type: object + properties: + description: + type: string + description: Parameter description + name: + type: string + description: Parameter name + value: + type: string + description: Value + example: + categories: + - id: 760 + name: Автомобильные товары + cpm_min: 112 + config: + - description: Минимальный бюджет кампании + name: budget_min + value: '1000' + - description: Максимальный период в днях, за который можно получить статистику + name: api_fullstat_day_depth + value: '31' + - description: Минимальная ставка CPM для автоматической кампании + name: cpm_min_booster + value: '100' + - description: Минимальная ставка CPM для аукциона + name: cpm_min_search_catalog + value: '150' + - description: Максимальное количество товаров для аукциона + name: max_nm_count + value: '50' + - description: Максимальное количество товаров для автоматической кампании + name: max_auto_nms + value: '100' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/promotion/adverts: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Campaigns information + description: | + The method allows to retrieve information about campaigns via query parameters, or by a list of campaign IDs.
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns + parameters: + - name: status + in: query description: | - ID предмета, для которого создается кампания.
- Существующие у продавца идентификаторы можно получить методом из раздела "Контент / Просмотр" - "Список НМ", поле ответа - `objectID`. - type: integer - example: 270 - sum: - description: Сумма пополнения - type: integer - example: 500 - btype: +
+
Campaign status:
+
-1 - the campaign is in the process of being deleted
+
4 - ready to be launched
+
7 - completed
+
8 - declined
+
9 - active
+
11 - campaign is paused
+
+ Campaign in the process of deletion. The status means that the campaign has been deleted and will disappear from the method's response within 3-10 minutes. + schema: + type: integer + enum: + - -1 + - 4 + - 7 + - 8 + - 9 + - 11 + - name: type + in: query description: | -
-
Tип списания.
-
0 - Счёт
-
1 - Баланс
-
3 - Бонусы
-
- type: integer - example: 1 - on_pause: +
+
Campaign type:
+
4 - campaign in catalog (deprecated type)
+
5 - campaign in content (deprecated type)
+
6 - campaign in search (deprecated type)
+
7 - campaign in recommendations on the main page (deprecated type)
+
8 - automatic campaign
+
9 - Auction
+
+ schema: + type: integer + enum: + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - name: order + in: query description: | -
-
После создания кампания:
-
-
true - будет на паузе.
-
Запуск кампании будет доступен через 3 минуты после создания кампании.
+
Order:
+
create (by the time of campaign creation)
+
change (by the time of the last change to the campaign)
+
id (by the campaign identifier)
-
-
false - будет сразу запущена
-
- type: boolean - example: true - nms: + schema: + type: string + enum: + - create + - change + - id + - name: direction + in: query description: | - Массив артикулов WB.
- Максимум 100 артикулов. - type: array - items: - type: integer - cpm: +
+
Direction:
+
desc (from greater to lesser)
+
asc (from lesser to greater)
+
+
For example: /adv/v1/promotion/adverts?type=6&order=change&direction=asc + schema: + type: string + enum: + - desc + - asc + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: integer + description: List of campaign IDs. A Maximum of of 50.

You can get campaign IDs using the Campaign Lists method. + example: + - 1234567 + - 63453471 + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + items: + anyOf: + - $ref: '#/components/schemas/ResponseInfoAdvert' + - $ref: '#/components/schemas/ResponseInfoAdvertType8' + - $ref: '#/components/schemas/ResponseInfoAdvertType9' + examples: + ResponseInfoAdvert: + $ref: '#/components/examples/ResponseInfoAdvert' + ResponseInfoAdvertType8: + $ref: '#/components/examples/ResponseInfoAdvertType8' + ResponseInfoAdvertType9: + $ref: '#/components/examples/ResponseInfoAdvertType9' + ResponseInfoAdvertsAll: + $ref: '#/components/examples/ResponseInfoAdvertsAll' + '204': + description: Campaigns not found + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + IncorrectTypeAdv: + $ref: '#/components/examples/IncorrectTypeAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + IncorrectUsingMethods: + $ref: '#/components/examples/IncorrectUsingMethods' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Error processing request parameters + content: + text/plain: + schema: + type: string + examples: + ErrorProcessRequestParam: + $ref: '#/components/examples/ErrorProcessRequestParam' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/save-ad: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Creating automatic campaign + description: | + Creates an automatic campaign.
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 20 seconds | 1 request | 20 seconds | 5 requests | +
+ tags: + - Campaigns Creation + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + type: + description: | +
+
Type of automatic campaign:
+
8
+
+ type: integer + example: 8 + name: + description: Campaign name (max. 128 characters) + type: string + example: Парашюты + subjectId: + description: | + ID of the item for which the campaign is created.
+ Seller's existing IDs can be received by "Content / View - "Nomenclature list" method, response field is `subjectID`. + type: integer + example: 270 + sum: + description: Top-up amount + type: integer + example: 500 + btype: + description: | +
+
Type of write-off.
+
0 - Account
+
1 - Balance
+
3 - Bonuses
+
+ type: integer + example: 1 + on_pause: + description: | +
+
After creating campaign:
+
+
true - Will be suspended.
+
The campaign launch will be available within 3 minutes after the campaign is created.
+
+
false - Will be launched
+
+ type: boolean + example: true + nms: + description: | + WB articles array.
+ Maximum of 100 articles + type: array + items: + type: integer + cpm: + description: | + Bid.
+ If a bid is specified that is less than the allowed size, the bid of the minimum allowed size will be automatically set. + type: integer + example: + type: 8 + name: Парашюты + subjectId: 270 + sum: 500 + btype: 1 + on_pause: true + nms: + - 9178363 + - 9178364 + cpm: 10 + responses: + '200': + description: Success + content: + application/json: + schema: + description: ID of created campaign + type: string + example: '9008917' + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + IncorrectId: + summary: '' + description: '' + value: + error: Некорректный ID предмета + BaseBudget500: + value: + error: базовый бюджет должен быть больше 500р + InvalidWriteOffType: + value: + error: Некорректный тип списания + DepositAmount50: + value: + error: Сумма пополнения должна быть кратна 50р + InsufficientFundsInAccount: + value: + error: недостаточно средств на счете + IncorrectCompanyName: + value: + error: Некорректное название кампании + NoProductsSelectedCategory: + value: + error: Товары выбранной категории не в наличии + PlacementIsNotPossible: + value: + error: размещение невозможно + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Error processing request parameters + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + ReceivingRecommendationsOnMainPage: + value: + error: Ошибка получения размещения в рекомендациях на главной + NotGetSupplierBalance: + value: + error: Не удалось получить баланс поставщика + CreatingSinglePlacement: + value: + error: Ошибка создания единственного размещения + ReceivingInProductCard: + value: + error: Ошибка получения размещения в карточке товара + GettingCpmCalculation: + value: + error: Ошибка получения расчета ставок + SavingPlacementInCard: + value: + error: Ошибка сохранения размещения в карточке + SavingPlacementInRecommend: + value: + error: Ошибка сохранения размещения в рекомендациях + FailedPutCampaignInCache: + value: + error: не удалось положить кампанию в кеш + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v2/seacat/save-ad: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Create Auction campaign + description: | + Creates Auction campaign.
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 5 requests | 12 seconds | 5 requests | +
+ tags: + - Campaigns Creation + requestBody: + content: + application/json: + schema: + type: object + properties: + campaignName: + description: Campaign name + type: string + nms: + type: array + description: "Nomenclature for this campaign. You can available nomenclatures with [Nomenclatures for campaigns](./promotion#tag/Nomenclatures/paths/~1adv~1v2~1supplier~1nms/post) method. Maximum of 50\_products (`nm`)\n" + items: + type: integer + description: WB article (`nmId`) + example: + campaignName: Телефоны + nms: + - 146168367 + - 200425104 + responses: + '200': + description: Success + content: + text/plain: + schema: + type: integer + description: Campaign ID + example: 1234567 + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Нет доступных категорий для рк. Создайте новую кампанию для попадания в текущие категории + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/supplier/subjects: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Subjects for campaigns + description: | + Returns subjects nomenclatures from which are available for all campaigns + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 12 seconds | 1 request | 12 seconds | 5 requests | +
+ tags: + - Campaigns Creation + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + nullable: true + x-nullable: true + items: + type: object + properties: + id: + description: Subject ID + type: integer + name: + description: Subject + type: string + count: + description: Number of WB Articles (`nmId`) in this subject + type: integer + examples: + Array: + value: + - name: 3D очки + id: 2560 + count: 1899 + 'null': + value: null + 'Response401': + $ref: '#/components/responses/Response401' + '404': + description: Not found + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v2/supplier/nms: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Product cards for campaigns + description: | + Returns product cards that are available for all campaigns. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 5 requests | 12 seconds | 5 requests | +
+ tags: + - Campaigns Creation + requestBody: + description: ID of subjects to get nomenclatures + content: + application/json: + schema: + type: array + items: + type: integer + example: + - 123 + - 456 + - 765 + - 321 + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + description: Nomenclatures for campaigns + items: + type: object + properties: + title: + type: string + description: Product name + example: Плед + nm: + type: integer + description: WB article (`nmId`) + example: 146168367 + subjectId: + type: integer + description: Subject ID + example: 765 + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Error processing request body + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/cpm: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Bid update + deprecated: true + description: | + The changed bid will appear in the campaign information within 3 minutes.
+
+ If the rate to be set is less than the allowable rate, the status code 422 (Rate size not changed) will be returned. +
+ + The procedure for filling in the parameters `type`, `instrument`, `param` when changing the rate for a campaign with type 9 (Auction): +
For 'type' it is necessary to specify the value 9 (always). +
A value of 4 or 6 should be specified for `instrument`, depending on whether the rate is to be changed in the catalogue (deprecated campaign type) or in the search (deprecated campaign type). +
For 'param' it is necessary to specify the value of the id field from the subject structure response of the [Information about campaign](/openapi/promotion#tag/Campaign-Management/paths/~1adv~1v1~1promotion~1adverts/post) method. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - advertId + - type + - cpm + - param + properties: + advertId: + description: Campaign ID where the bid is changing + type: integer + example: 789 + type: + description: | +
+
Campaign type to change the price:
+
5 - campaign in content (deprecated type)
+
6 - campaign in search (deprecated type)
+
7 - campaign on main page recommendations (deprecated type)
+
8 - automatic campaign
+
9 - Auction campaign
+
+ type: integer + enum: + - 5 + - 6 + - 7 + - 8 + - 9 + cpm: + description: New bid value + type: integer + example: 456 + param: + description: | + The parameter for which the change will be made is the value of `subjectId` (for search and recommendation campaigns (deprecated campaign types)), `setId` (for product card campaigns (deprecated campaign type)), or `menuId` (for catalog campaigns (deprecated campaign type)). +
For automated campaigns, this parameter is not required. + type: integer + example: 23 + instrument: + description: Campaign type for bid change in Auction + type: integer + example: 4 + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + IncorrectParamAdv: + $ref: '#/components/examples/IncorrectParamAdv' + IncorrectTypeAdv: + $ref: '#/components/examples/IncorrectTypeAdv' + IncorrectCpmAdv: + $ref: '#/components/examples/IncorrectCpmAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Bid size not changed + content: + text/plain: + schema: + type: string + examples: + RequestBodyProcessErrorAdv: + $ref: '#/components/examples/RequestBodyProcessErrorAdv' + AmountNotChanged: + $ref: '#/components/examples/AmountNotChanged' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/bids: + servers: + - url: https://advert-api.wildberries.ru + patch: + summary: Change product cards bids + description: | + The method changes the bids of product cards by WB articles in automatic campaigns and Auctions. +

+ For campaigns in any status except `-1`, `7` and `8` +
+ Minimum allowable bids can be found in the response of the method for obtaining [configuration values](/openapi/promotion#tag/Sozdanie-kampanij/paths/~1adv~1v0~1config/get) + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - bids + properties: + bids: + type: array + maxItems: 20 + items: + $ref: '#/components/schemas/V0AdvertMultibid' + responses: + '204': + description: Success + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + detail: + type: string + description: Error details + origin: + type: string + description: WB internal service ID + request_id: + type: string + description: Unique request ID + status: + type: integer + description: HTTP status code + title: + type: string + description: Error title + errors: + type: array + description: Error details + items: + type: object + properties: + detail: + type: string + description: Error description + field: + type: string + description: Field containing error + type: + type: string + description: Error type + examples: + CampaignIsNotUnique: + $ref: '#/components/examples/CampaignIsNotUnique' + CanNotDeserializeResponseBody: + $ref: '#/components/examples/CanNotDeserializeResponseBody' + CampaignNotFound: + $ref: '#/components/examples/CampaignNotFoundBids' + NmNotFound: + $ref: '#/components/examples/NmNotFound' + WrongCampaignID: + $ref: '#/components/examples/WrongCampaignID' + WrongCampaignStatus: + $ref: '#/components/examples/WrongCampaignStatus' + WrongBidValue: + $ref: '#/components/examples/WrongBidValue' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/delete: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Delete campaign + description: | + The method allows to delete campaigns in the status 4 - ready to launch.
+ + After deleting, the campaign will be in -1 status for a while.
+ + It takes between 3 and 10 minutes to completely delete the campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + required: true + responses: + '200': + description: Success + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + ResponseInvalidCampaignID: + $ref: '#/components/examples/ResponseInvalidCampaignID' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/rename: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Rename campaign + description: | + The method allows to rename a campaign.
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + requestBody: + content: + application/json: + schema: + type: object + required: + - advertId + - name + properties: + advertId: + type: integer + description: ID of the campaign that has the name change + name: + type: string + description: New name (max 100 characters) + example: + advertId: 2233344 + name: newnmame + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectName: + $ref: '#/components/examples/IncorrectName' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Error processing request parameters + content: + text/plain: + schema: + type: string + examples: + RequestBodyProcessErrorAdv: + $ref: '#/components/examples/RequestBodyProcessErrorAdv' + CompanyNameChangeErr: + $ref: '#/components/examples/CompanyNameChangeErr' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/start: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Launch campaign + description: | + The method allows to run campaigns that are in statuses 4 - ready to launch or 11 - paused campaign.
+ + To run an ad campaign with status 11, check its budget. If the budget is insufficient, replenish it.
+
+
To run a campaign with status 4, it is necessary to do following (the order of actions does not matter):
+
1. After creating a campaign in the WB. Promotion cabinet click the `Apply changes` button.
+
2. Set the budget.
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Status not changed + content: + text/plain: + schema: + type: string + examples: + StatusNoChangeAdv: + $ref: '#/components/examples/StatusNoChangeAdv' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/pause: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Pause campaign + description: | + Campaign in status `9` - active - can be paused + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Status not changed + content: + text/plain: + schema: + type: string + examples: + StatusNoChangeAdv: + $ref: '#/components/examples/StatusNoChangeAdv' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v0/stop: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Stop campaign + description: |- + The method allows to end campaigns that are in status 9, 11 or 4. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 5 requests | 200 milliseconds | 5 requests | +
+ tags: + - Campaigns Management + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1234 + required: true + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + InvalidRcIdAdv: + $ref: '#/components/examples/InvalidRcIdAdv' + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Status not changed + content: + text/plain: + schema: + type: string + examples: + StatusNoChangeAdv: + $ref: '#/components/examples/StatusNoChangeAdv' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/balance: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Balance + description: | + The method allows to get information about the seller's net, balance and bonuses
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 1 request | 1 second | 5 requests | +
+ tags: + - Finances + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + balance: + description: Account, russian ruble + type: integer + net: + description: Balance, russian ruble + type: integer + bonus: + description: Bonuses, russian ruble + type: integer + example: + balance: 11083 + net: 0 + bonus: 15187 + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/budget: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Campaign budget + description: | + The method allows to get information about the budget of a campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 4 requests | 250 milliseconds | 4 requests | +
+ tags: + - Finances + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1 + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + cash: + description: The field is not used. The value is always equal to 0. + type: integer + netting: + description: The field is not used. The value is always equal to 0. + type: integer + total: + description: Campaign budget, RUB + type: integer + example: + cash: 0 + netting: 0 + total: 500 + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + CampaignNotBelongSeller: + $ref: '#/components/examples/CampaignNotBelongSeller' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/budget/deposit: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Top-up of the campaign budget + description: | + The method allows to top up the budget of the campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 1 request | 1 second | 5 requests | +
+ tags: + - Finances + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sum: + description: Top-up amount + type: integer + example: 5000 + type: + description: | +
+
Type of top-up source:
+
0 - Account
+
1 - Balance
+
3 - Bonuses
+
+ type: integer + example: 1 + return: + type: boolean + description: Response return flag (`true` means updated campaign budget size will be returned in the response, `false` or empty means nothing will be returned). + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ResponseWithReturn' + examples: + ResponseWithReturn: + $ref: '#/components/examples/ResponseWithReturn' + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + DepositAmountMultiple50: + description: The top-up amount must be a multiple of 50 roubles + value: + error: Сумма пополнения должна быть кратна 50 руб + MinimumDepositAmountIs500: + description: Minimum top-up amount is 1000 RUB + value: + error: Минимальная сумма пополнения 1000 рублей + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/upd: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Receiving costs history + description: | + The method allows to get a costs history + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 1 request | 1 second | 5 requests | +
+ tags: + - Finances + parameters: + - name: from + in: query + description: Beginning of the interval + schema: + type: string + format: date + example: '2023-07-31' + required: true + - name: to + in: query description: | - Ставка.
- Если будет указана ставка меньше допустимого размера, то автоматически установится ставка минимально допустимого размера. - type: integer - example: - type: 8 - name: Парашюты - subjectId: 270 - sum: 500 - btype: 1 - on_pause: true - nms: - - 9178363 - - 9178364 - cpm: 10 - responses: - '200': - description: '' - content: - application/json: - schema: - description: ID созданной кампании - type: string - example: '9008917' - '400': - description: Неверная форма запроса - content: - application/json: - schema: - type: object - properties: - error: - type: string - examples: - IncorrectId: - summary: '' - description: '' - value: - error: некорректный ID предмета - BaseBudget500: - value: - error: базовый бюджет должен быть больше 500р - InvalidWriteOffType: - value: - error: некорректный тип списания - DepositAmount50: - value: - error: Сумма пополнения должна быть кратна 50р - InsufficientFundsInAccount: - value: - error: недостаточно средств на счете - IncorrectCompanyName: - value: - error: Некорректное название кампании - NoProductsSelectedCategory: - value: - error: Товары выбранной категории не в наличии - PlacementIsNotPossible: - value: - error: размещение невозможно - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: '' - content: - application/json: - schema: - type: object - properties: - error: - type: string - examples: - ReceivingRecommendationsOnMainPage: - value: - error: Ошибка получения размещения в рекомендациях на главной - NotGetSupplierBalance: - value: - error: не удалось получить баланс поставщика - CreatingSinglePlacement: - value: - error: Ошибка создания единственного размещения - ReceivingInProductCard: - value: - error: Ошибка получения размещения в карточке товара - GettingCpmCalculation: - value: - error: Ошибка получения расчета ставок - SavingPlacementInCard: - value: - error: Ошибка сохранения размещения в карточке - SavingPlacementInRecommend: - value: - error: Ошибка сохранения размещения в рекомендациях - FailedPutCampaignInCache: - value: - error: не удалось положить кампанию в кеш - /adv/v2/seacat/save-ad: - servers: - - url: https://advert-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: "Создать кампанию Поиск\_+\_Каталог" - description: "Создаёт кампанию Поиск\_+\_Каталог.
\nМаксимум 5 запросов в\_минуту\n" - tags: - - Продвижение - requestBody: - content: - application/json: - schema: - type: object - required: - - nms - properties: - campaignName: - description: Название кампании - type: string - nms: - type: array + End of interval.
+ (Minimum interval is 1 day, maximum is 31) + schema: + type: string + format: date + example: '2023-08-02' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + items: + type: object + properties: + updNum: + description: Billing document number (if any) + type: integer + updTime: + nullable: true + description: Time of charge-off + type: string + format: time-date + updSum: + description: Amount invoiced + type: integer + advertId: + description: Campaign ID + type: integer + campName: + description: Campaign name + type: string + advertType: + description: Type of campaign + type: integer + paymentType: + description: | + Source of charge-off: + - `Баланс` - Balance + - `Бонусы` - Bonuses + - `Счет` - Money account + - `Кэшбэк` - Debit card cashback + type: string + advertStatus: + description: | +
+
Campaign status:
+
4 - ready to run
+
7 - is over
+
8 - refused
+
9 - active
+
11 - paused
+
+ type: integer + example: + - updNum: 0 + updTime: '2023-07-31T12:12:54.060536+03:00' + updSum: 24 + advertId: 3355881 + campName: лук лучок + advertType: 6 + paymentType: Баланс + advertStatus: 9 + - updNum: 0 + updTime: null + updSum: 107 + advertId: 3366882 + campName: золотая луковица + advertType: 8 + paymentType: Счет + advertStatus: 11 + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/payments: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Receiving the history of account top-ups + description: | + The method allows you to get a history of top-ups. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 1 request | 1 second | 5 requests | +
+ tags: + - Finances + parameters: + - name: from + in: query + description: Beginning of the interval + schema: + type: string + format: date + example: '2023-07-31' + - name: to + in: query description: | - Номенклатуры для кампании. Доступные номенклатуры можно получить с помощью метода [Номенклатуры для кампаний](./#tag/Slovari/paths/~1adv~1v2~1supplier~1nms/post). Максимум 50 товаров (`nm`) - items: - type: integer - description: Артикул Wildberries (`nmId`) - example: - name: Телефоны - nms: - - 146168367 - - 200425104 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: integer - description: ID кампании - example: 1234567 - '400': - description: Неправильный запрос - content: - application/json: - schema: - type: string - example: Нет доступных категорий для рк. Создайте новую кампанию для попадания в текущие категории - '401': - description: Пользователь не авторизован - '429': - description: Слишком много запросов - /adv/v0/delete: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Удаление кампании - description: | - Метод позволяет удалять кампании в статусе 4 - готова к запуску.
-
Допускается 5 запросов в секунду.
- После удаления кампания некоторое время будет находиться в -1 статусе.
- Полное удаление кампании занимает от 3 до 10 минут. - tags: - - Продвижение - parameters: - - name: id - in: query - description: ID кампании - schema: - type: integer - required: true - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvError1' - examples: - ResponseInvalidCampaignID: - $ref: '#/components/examples/ResponseInvalidCampaignID' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/promotion/count: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Списки кампаний - description: | - Метод позволяет получать списки кампаний, сгруппированных по типу и статусу, с информацией о дате последнего изменения кампании. -
- Допускается 5 запросов в секунду. - tags: - - Продвижение - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - adverts: - type: array - description: Данные по кампаниям - items: - type: object - properties: - type: - description: Тип кампании - type: integer - status: - description: Статус кампании - type: integer - count: - description: Количество кампаний - type: integer - advert_list: - description: Список кампаний - type: array - items: + End of interval.
+ (Minimum interval is 1 day, maximum is 31) + schema: + type: string + format: date + example: '2023-08-02' + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + description: Payment ID + type: integer + date: + description: Payment date + type: string + format: time-date + sum: + description: Payment amount + type: integer + type: + description: | +
+
Type of charge-off source:
+
0 - Account
+
1 - Balance
+
3 - Card
+
+ type: integer + statusId: + description: | +
+
Status:
+
0 - error
+
1 - processed
+
+ type: integer + cardStatus: + description: | +
+
Transaction status (when paying by card):
+
success - success
+
fail - not success
+
pending - waiting for response
+
unknown - unknown
+
+ type: string + example: + - id: 1036666 + date: '2022-02-04T09:06:47.985843Z' + sum: 600 + type: 0 + statusId: 1 + cardStatus: '' + - id: 55261296 + date: '2023-04-13T10:07:42' + sum: 1500 + type: 3 + statusId: 1 + cardStatus: succeeded + '400': + description: Bad request + content: + text/plain: + schema: + type: string + examples: + IncorrectSupplierIdAdv: + $ref: '#/components/examples/IncorrectSupplierIdAdv' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/search/set-plus: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Managing the activity of fixed phrases + description: | + The method allows to change the activity of fixed phrases. Only for Auction campaigns. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 500 milliseconds | 1 request | 500 milliseconds | 5 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1234567 + required: true + - name: fixed + in: query + description: New state (`false` - make inactive, `true` - make active) + schema: + type: boolean + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Bad request + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + post: + security: + - HeaderApiKey: [] + summary: Setting/deleting fixed phrases + description: | + The method allows to set and delete fixed phrases.Only for Auction campaigns. + + Sending an empty array removes all fixed phrases and disables fixed phrase activity in the campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 500 milliseconds | 1 request | 500 milliseconds | 5 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: + type: integer + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: type: object properties: - advertId: - description: ID кампании - type: integer - changeTime: - description: Дата и время последнего изменения кампании + pluse: + description: Fixed phrase list (max. 100) + type: array + items: + type: string + example: + pluse: + - Фраза 1 + - Фраза 2 + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + items: + type: string + example: + - Фраза 1 + - Фраза 2 + '400': + description: Bad request + content: + text/plain: + schema: type: string - format: date-time - example: - adverts: - - type: 4 - status: 8 - count: 3 - advert_list: - - advertId: 6485174 - changeTime: '2023-05-10T12:12:52.676254+03:00' - - advertId: 6500443 - changeTime: '2023-05-10T17:08:46.370656+03:00' - - advertId: 7936341 - changeTime: '2023-07-12T15:51:08.367478+03:00' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/promotion/adverts: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Информация о кампаниях - description: | - Метод позволяет получать информацию о кампаниях по query параметрам, либо по списку id кампаний. -
- Допускается 5 запросов в секунду. - tags: - - Продвижение - parameters: - - name: status - in: query - description: | -
-
Статус кампании:
-
-1 - кампания в процессе удаления
-
4 - готова к запуску
-
7 - кампания завершена
-
8 - отказался
-
9 - идут показы
-
11 - кампания на паузе
-
- Кампания в процессе удаления. Статус означает, что кампания была удалена, и через 3-10 минут она исчезнет из ответа метода. - schema: - type: integer - enum: - - -1 - - 4 - - 7 - - 9 - - 11 - - name: type - in: query - description: | -
-
Тип кампании:
-
4 - кампания в каталоге
-
5 - кампания в карточке товара
-
6 - кампания в поиске
-
7 - кампания в рекомендациях на главной странице
-
8 - автоматическая кампания
-
9 - поиск + каталог
-
- schema: - type: integer - enum: - - 4 - - 5 - - 6 - - 7 - - name: order - in: query - description: | -
-
Порядок:
-
create (по времени создания кампании)
-
change (по времени последнего изменения кампании)
-
id (по идентификатору кампании)
-
-
Например: /adv/v1/promotion/adverts?type=6&order=change&direction=asc - schema: - type: string - enum: - - create - - change - - id - - name: direction - in: query - description: | -
-
Направление:
-
desc (от большего к меньшему)
-
asc (от меньшего к большему)
-
-
Например: /adv/v1/promotion/adverts?type=6&order=change&direction=asc - schema: - type: string - enum: - - desc - - asc - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: integer - description: 'Список ID кампаний. Максимум 50.

Получить id кампаний можно методом Списки кампаний. ' - example: - - 1234567 - - 63453471 - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ResponseInfoAdvert' - - $ref: '#/components/schemas/ResponseInfoAdvertType8' - - $ref: '#/components/schemas/ResponseInfoAdvertType9' - '204': - description: Кампании не найдены - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectTypeAdv: - $ref: '#/components/examples/IncorrectTypeAdv' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - IncorrectUsingMethods: - $ref: '#/components/examples/IncorrectUsingMethods' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: '' - content: - application/json: - schema: - type: string - examples: - ErrorProcessRequestParam: - $ref: '#/components/examples/ErrorProcessRequestParam' - /adv/v1/advert/stop: - servers: - - url: https://advert-media-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Завершение медиакампании - description: | - Метод завершает медиакампанию - переводит её в статус `7`. -
Допускается максимум 10 запросов в минуту. -
-
Статусы, в которых для медиакампании доступно завершение:
-
1 - черновик
-
3 - отклонено (с возможностью вернуть на модерацию)
-
4 - одобрено
-
5 - запланировано
-
6 - на показах
-
8 - отказался
-
9 - приостановлена продавцом
-
10 - пауза по дневному лимиту
-
11 - пауза по расходу бюджета
-
- tags: - - Активность медиакампании - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - advert_id - properties: - advert_id: - description: ID медиакампании - type: integer - reason: - description: Описание причины завершения - type: string - example: - advert_id: 123456 - reason: Описание причины завершения - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - CampaignNotFound: - $ref: '#/components/examples/CampaignNotFound' - ChangingStatusToNewIsNotPossible: - $ref: '#/components/examples/ChangingStatusToNewIsNotPossible' - '422': - description: '' - /adv/v1/advert/pause: - servers: - - url: https://advert-media-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Приостановка медиакампании - description: "Метод позволяет приостанавливать медиакампании.
\nПереводит приостанавливаемую медиакампанию в статус `9`.
\nДопускается максимум 10 запросов в минуту.
\n`Важно:` приостановить медиакампанию можно не больше 10 раз в сутки. Сутки отсчитываются с полуночи по Московскому времени.\n
\n
\n
Статусы, в которых для медиакампании доступна приостановка:
\n
4\_— одобрено
\n
5\_— запланировано
\n
6\_— на показах
\n
10\_— пауза по дневному лимиту
\n
11\_— пауза по расходу бюджета
\n
\n" - tags: - - Активность медиакампании - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - advert_id - properties: - advert_id: - description: ID медиакампании - type: integer - reason: - description: Описание причины приостановки - type: string - example: - advert_id: 123456 - reason: Описание причины приостановки - responses: - '200': - description: '' - '422': - description: '' - /adv/v1/advert/start: - servers: - - url: https://advert-media-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Запуск медиакампании - description: | - Метод позволяет запускать приостановленные медиакампании. -
- После запуска кампания в течение 2-5 минут будет находиться в статусе `4`, после чего статус будет изменён на актуальный, в зависимости от конфигурации медиакампании. -
Допускается максимум 10 запросов в минуту. -
-
Статусы, в которых для медиакампании доступен запуск:
-
9 - приостановлена продавцом
-
11 - пауза по расходу бюджета
-
- tags: - - Активность медиакампании - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - advert_id - properties: - advert_id: - description: ID медиакампании - type: integer - reason: - description: Описание причины запуска - type: string - example: - advert_id: 123456 - reason: Причина запуска - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - CampaignNotFound: - $ref: '#/components/examples/CampaignNotFound' - ChangingStatusToNewIsNotPossible: - $ref: '#/components/examples/ChangingStatusToNewIsNotPossible' - InsufficientFundsToResumeImpressions: - $ref: '#/components/examples/InsufficientFundsToResumeImpressions' - DisableOrIncreaseDailyLimit: - $ref: '#/components/examples/DisableOrIncreaseDailyLimit' - TopUpCampaignBudget: - $ref: '#/components/examples/TopUpCampaignBudget' - ChooseSourceOfFundsDebiting: - $ref: '#/components/examples/ChooseSourceOfFundsDebiting' - UnknownPaymentType: - $ref: '#/components/examples/UnknownPaymentType' - InsufficientFunds: - $ref: '#/components/examples/InsufficientFunds' - CreatePlacement: - $ref: '#/components/examples/CreatePlacement' - TopUpCampaignBudgetToResumeImpressions2: - $ref: '#/components/examples/TopUpCampaignBudgetToResumeImpressions2' - '422': - description: '' - /adv/v1/item/cpm/change: - servers: - - url: https://advert-media-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Изменение ставки баннера - description: | - Метод позволяет изменять ставку баннера в структуре items.
- Изменение возможно только для кампаний в одном из статусов: 4, 5, 6, 9, 10, 11. -
Допускается максимум 10 запросов в минуту. - tags: - - Ставки медиакампании - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - advert_id - - item_id - - cpm - properties: - advert_id: - description: ID медиакампании - type: integer - item_id: - description: ID баннера - type: integer - cpm: - description: ' Новая ставка' - type: string - example: - advert_id: 80474 - item_id: 41573 - cpm: 300 - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - ErrorInGettingItems: - $ref: '#/components/examples/ErrorInGettingItems' - TypePlacementShouldBeImpressions: - $ref: '#/components/examples/TypePlacementShouldBeImpressions' - ChangeOnlyPossibleForActiveCampaigns: - $ref: '#/components/examples/ChangeOnlyPossibleForActiveCampaigns' - SmallCpm: - $ref: '#/components/examples/SmallCpm' - '422': - description: '' - /adv/v1/count: - servers: - - url: https://advert-media-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получение медиакампаний - description: | - Метод позволяет получить количество медиакампаний продавца - tags: - - Медиа - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - all: - description: Общее количество медиакампаний всех статусов и типов - type: integer - adverts: - type: object - properties: - type: - description: | -
-
Тип медиакампании:
-
1 - размещение по дням
-
2 - размещение по просмотрам
-
- type: integer - status: - description: | -
-
Статус медиакампании:
-
1 - черновик
-
2 - модерация -
3 - отклонено (с возможностью вернуть на модерацию)
-
4 - одобрено
-
5 - запланировано
-
6 - на показах
-
7 - завершено
-
8 - отказался
-
9 - приостановлена продавцом
-
10 - пауза по дневному лимиту
-
11 - пауза по расходу бюджета
-
- type: integer - count: - description: Количество медиакампаний - type: integer - example: - all: 6 - adverts: - - type: 2 - status: 7 - count: 2 - - type: 2 - status: 8 - count: 4 - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /adv/v1/adverts: - servers: - - url: https://advert-media-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список медиакампаний - description: | - Метод позволяет получить список медиакампаний продавца - tags: - - Медиа - parameters: - - name: status - in: query - description: | -
-
Статус медиакампании:
-
1 - черновик
-
2 - модерация -
3 - отклонено (с возможностью вернуть на модерацию)
-
4 - одобрено
-
5 - запланировано
-
6 - на показах
-
7 - завершено
-
8 - отказался
-
9 - приостановлена продавцом
-
10 - пауза по дневному лимиту
-
11 - пауза по расходу бюджета
-
- schema: - type: integer - example: 1 - - name: type - in: query - description: | -
-
Тип медиакампании:
-
1 - размещение по дням
-
2 - размещение по просмотрам
-
- schema: - type: integer - example: 1 - - name: limit - in: query - description: Количество кампаний в ответе - schema: - type: integer - example: 1 - - name: offset - in: query - description: Смещение относительно первой медиакампании - schema: - type: integer - example: 1 - - name: order - in: query - description: | -
-
Порядок вывода ответа:
-
create - по времени создания медиакампании
-
id - по идентификатору медиакампании
-
- schema: - type: string - example: id - - name: direction - in: query - description: | -
-
Порядок сортировки:
-
desc - от большего к меньшему
-
asc - от меньшего к большему
-
- schema: - type: string - example: desc - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - advertId: - description: Идентификатор медиакампании + example: 'json: cannot unmarshal number into Go struct field request.pluse of type string' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/search/set-phrase: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Setting/removing minus-phrases of phrase matching + description: | + Sets/removes minus-phrases of a phrase match. Only for Auction campaigns.
+ The Maximum of allowed number of minus-phrases in a campaign is 1000 pcs.
+ Posting an empty array removes all minus-phrase of phrase matching from the campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 2 requests | 500 milliseconds | 2 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: type: integer - name: - description: Название медиакампании - type: string - brand: - description: Название бренда - type: string - type: - description: | -
-
Тип медиакампании:
-
1 - размещение по дням
-
2 - размещение по просмотрам
-
+ example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + phrase: + description: Minus-phrases (max. 1000 pcs.) + type: array + items: + type: string + example: + phrase: + - сло + - гу + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Bad request + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/search/set-strong: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Setting/removing minus of exact match phrases + description: | + Sets/removes minus-phrases of exact match. Only for Auction campaigns.
+ + The Maximum of allowed number of minus-phrases in a campaign is 1000 pcs.
+ + Sending an empty array removes all minus-phrases of the exact match from the ad campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 2 requests | 500 milliseconds | 2 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: type: integer - status: - description: | -
-
Статус медиакампании:
-
1 - черновик
-
2 - модерация -
3 - отклонено (с возможностью вернуть на модерацию)
-
4 - одобрено
-
5 - запланировано
-
6 - на показах
-
7 - завершено
-
8 - отказался
-
9 - приостановлена продавцом
-
10 - пауза по дневному лимиту
-
11 - пауза по расходу бюджета
-
+ example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + strong: + description: Minus-phrases (max. 1000 pcs.) + type: array + items: + type: string + example: + strong: + - стоять + - лопата + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Bad request + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/search/set-excluded: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Setting/removing minus phrases from search + description: | + Sets/removes minus-phrases for search. Only for Auction campaigns.
+ The Maximum of allowed number of minus-phrases in a campaign is 1000 pcs.
+ Sending an empty array removes all minus-phrases from the Search ad campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 2 requests | 500 milliseconds | 2 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: type: integer - createTime: - description: Время создания медиакампании - type: string - format: date-time - endTime: - description: Время завершения медиакампании (при наличии) - type: string - format: date-time - example: - - advertId: 123456 - name: тост - brand: goosb - type: 2 - status: 8 - createTime: '2023-03-25T20:35:57.116943+03:00' - - advertId: 54321 - name: тест - brand: bobr - type: 1 - status: 7 - createTime: '2023-07-24T16:48:20.935599+03:00' - endTime: '2023-07-25T20:35:50.104978Z' - /adv/v1/advert: - servers: - - url: https://advert-media-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Информация о медиакампании - description: | - Метод позволяет получить информацию об одной медиакампании - tags: - - Медиа - parameters: - - name: id - in: query - description: Идентификатор медиакампании - schema: - type: integer - example: 23569 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - advertId: - description: Идентификатор медиакампании - type: integer - name: - description: Название медиакампании - type: string - brand: - description: Название бренда - type: string - type: - description: | -
-
Тип медиакампании:
-
1 - размещение по дням
-
2 - размещение по просмотрам
-
- type: integer - status: - description: | -
-
Статус медиакампании:
-
1 - черновик
-
2 - модерация -
3 - отклонено (с возможностью вернуть на модерацию)
-
4 - одобрено
-
5 - запланировано
-
6 - на показах
-
7 - завершено
-
8 - отказался
-
9 - приостановлена продавцом
-
10 - пауза по дневному лимиту
-
11 - пауза по расходу бюджета
-
- type: integer - createTime: - description: Время создания медиакампании - type: string - format: date-time - extended: - type: object - properties: - reason: - description: Комментарий модератора (при наличии) - nullable: true - type: string - expenses: - description: Затраты - type: integer - from: - description: Начало показов медиакампании - type: string - format: date-time - to: - description: Конец показов медиакампании - type: string - format: date-time - updated_at: - description: Время изменения медиакампании - type: string - format: date-time - price: - description: Стоимость размещения по дням (для типа 1) - type: integer - budget: - description: Остаток бюджета (для типа 2) - type: integer - operation: - description: Источник списания (1 - баланс, 2 - счет) - type: integer - contract_id: - description: Идентификатор контракта (для продавцов на контракте) - type: integer - items: - description: | - Информация о баннере. -
- Наличие в ответе тех или иных полей зависит от конфигурации медиакампании. - type: array - items: - type: object - properties: - id: - description: ID баннера - type: integer - name: - description: Бренд - type: string - status: - description: Статус (такой же как у медиакампании) - type: integer - place: - description: Позиция на странице размещения - type: integer - budget: - description: Бюджет - type: integer - daily_limit: - description: Дневной лимит (для баннеров по показам) - type: integer - category_name: - description: Название категории размещения - type: string - cpm: - description: Ставка - type: integer - url: - description: URL страницы, на которую попадает пользователь при клике по баннеру - type: string - advert_type: - description: | -
-
Тип продвижения:
-
1 - баннер
-
2 - всплывающее меню
-
3 - почтовая рассылка
-
4 - социальные сети
-
5 - push-уведомления в мобильном приложении
-
- type: integer - created_at: - description: Дата создания баннера - format: date-time - type: string - updated_at: - description: Дата обновления баннера - format: date-time - type: string - date_from: - description: Дата начала работы баннера - format: date-time - type: string - date_to: - description: Дата завершения работы баннера - format: date-time - type: string - nms: - description: Подборка артикулов WB - type: array - items: - type: integer - bottomText1: - description: Текст под плашкой баннера - type: string - bottomText2: - description: 2-я строка с текстом под плашкой баннера - type: string - message: - description: Текст push-уведомления или рассылки - type: string - additionalSettings: - description: | - Дополнительные настройки. -
-
Формат почтовой рассылки:
-
1 - общий
-
2 - частичный
-
3 - уникальный
-
-
-
Социальная сеть:
-
1 - VKontakte
-
2 - OK (Одноклассники)
-
- type: integer - receiversCount: - description: Кол-во получателей push-уведомлений - type: integer - subject_id: - description: ID родительской категории товара - type: integer - subject_name: - description: Название родительской категории товара - type: string - action_name: - description: Название акции - type: string - show_hours: - description: Часы показа - type: array - items: + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: type: object properties: - From: - description: Начало показа - type: integer - To: - description: Конец показа - type: integer - Erid: - description: Уникальный идентификатор медиакампании для работы с ОРД - type: string - example: - advertId: 23569 - name: Реклама денег принеси - brand: Plank - type: 2 - status: 11 - createTime: '2023-07-19T11:13:41.195138+03:00' - extended: - reason: Для возобновления показов пополните бюджет медиакампании - expenses: 10000 - from: '2023-07-19T12:05:35.847348Z' - to: '2123-07-20T08:14:13.079176+03:00' - updated_at: '2023-07-21T13:25:31.129766+03:00' - price: 0 - budget: 0 - operation: 1 - contract_id: 0 - items: - - id: 68080 - name: Унисон - status: 7 - place: 2 - budget: 650000 - daily_limit: 500 - category_name: Главная - cpm: 351 - url: https://www.wildberries.ru/promotions/ssylka-na-akciyou - advert_type: 1 - created_at: '2023-11-01T15:40:46.86165+03:00' - updated_at: '2023-11-08T23:44:33.248229+03:00' - date_from: '2023-11-01T16:05:22.286002Z' - date_to: '2023-11-09T17:27:32.745869+03:00' - nms: - - 123456 - - 11111111 - bottomText1: string - bottomText2: string - message: string - additionalSettings: 1 - receiversCount: 1 - subject_id: 6945 - subject_name: Бельё - action_name: Распродажа! Создай себе домашний уют! - show_hours: - - From: 7 - To: 8 - Erid: string - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /adv/v1/stats: - servers: - - url: https://advert-media-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Статистика медиакампаний - description: | - Метод позволяет получать статистику медиакампаний. - tags: - - Статистика медиакампании - requestBody: - required: true - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/RequestWithDate' - - $ref: '#/components/schemas/RequestWithInterval' - examples: - RequestWithDate: - $ref: '#/components/examples/RequestWithDate' - RequestWithInterval: - $ref: '#/components/examples/RequestWithInterval' - RequestWithoutParam: - $ref: '#/components/examples/RequestWithoutParam' - RequestAggregate: - $ref: '#/components/examples/RequestAggregate' - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - oneOf: - - $ref: '#/components/schemas/StatInterval' - - $ref: '#/components/schemas/StatDate' - - $ref: '#/components/schemas/Stat' - examples: - RespStatMediaInterval: - $ref: '#/components/examples/RespStatMediaInterval' - RespStatMediaDates: - $ref: '#/components/examples/RespStatMediaDates' - RespStatMediaWithoutParam: - $ref: '#/components/examples/RespStatMediaWithoutParam' - RespStatMediaAggregate: - $ref: '#/components/examples/RespStatMediaAggregate' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v0/cpm: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список ставок - description: | - Получение списка ставок для типа размещения. -
Допускается 5 запросов в секунду. -
Данные в ответе отсортированы по величине ставки от большей к меньшей. - tags: - - Ставки - parameters: - - name: type - in: query - description: "Кампания:\n * `4`\_— в каталоге\n * `5`\_— в карточке товара\n * `6`\_— в поиске\n * `7`\_— в рекомендациях на главной странице\n * `9`\_— поиск\_+ каталог\n" - schema: - type: integer - enum: - - 4 - - 5 - - 6 - - 7 - - 9 - required: true - - name: param - in: query - description: | - Параметр запроса, по которому будет получен список ставок активных кампаний. -
Должен быть значением `menuId`, `subjectId` или `setId` в зависимости от типа кампании. Получить их можно методом "Информация о кампании" - schema: - type: integer - example: 1234 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - Cmp: - description: Размер ставки + excluded: + description: Minus-phrases (max. 1000 pcs.) + type: array + items: + type: string + example: + excluded: + - что-то синее + - картошечка + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Bad request + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/auto/set-excluded: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Setting/removing minus-phrases for automatic campaigns + description: | + The method allows to set or remove minus phrases.
+ Sending an empty array removes all minus phrases from the campaign. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 1 request | 6 seconds | 5 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: type: integer - example: 290 - Count: - description: Количество ставок + example: 1234567 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + excluded: + description: List of phrases (Maximum of 1000 pcs.) + type: array + items: + type: string + examples: + SettingMinusPhrase: + $ref: '#/components/examples/SettingMinusPhrase' + RemovingMinusPhrase: + $ref: '#/components/examples/RemovingMinusPhrase' + responses: + '200': + description: Success + '400': + description: Bad request + content: + text/plain: + schema: + type: string + example: Bad request + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/auto/getnmtoadd: + servers: + - url: https://advert-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: List of product cards for automatic campaign + description: | + The method allows to get the list of product cards available for adding to the campaign.
+ +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 1 request | 1 second | 5 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: type: integer example: 1 - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectParamAdv: - $ref: '#/components/examples/IncorrectParamAdv' - IncorrectType: - $ref: '#/components/examples/IncorrectTypeAdv' - IncorrectSupplierId: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: '' - content: - application/json: - schema: - type: string - examples: - AmountNotChanged: - $ref: '#/components/examples/AmountNotChanged' - RequestBodyProcessErrorAdv: - $ref: '#/components/examples/RequestBodyProcessErrorAdv' - post: - security: - - HeaderApiKey: [] - summary: Изменение ставки у кампании - description: | - Изменение ставки у кампании.
- Измененная ставка отобразится в информации о кампании в течение трех минут.
- Допускается 5 запросов в секунду.
-
- `Важно!` Если устанавливаемая ставка имеет размер меньше допустимого, то в ответ Вы получите статус-код 422 (Размер ставки не изменён).
- Информация об изменении минимального размера ставки публикуется в разделе Новости, на портале продавцов.
-
- `Важно!` Принцип заполнения параметров `type`, `instrument`, `param` при изменении ставки для кампании с типом 9 (поиск + каталог): - -
Для `type` указывается значение 9 (всегда). - -
Для `instrument` указывается значение 4 или 6 в зависимости от того, в каталоге или поиске необходимо изменить ставку. - -
Для `param` всегда указывается значение поля id из структуры subject ответа метода "Информация о кампании", вне зависимости от того, в каталоге или поиске изменяется ставка. -

- `Важно!` Если в кампании Поиск + Каталог доступен только Поиск, то установить ставку в Каталог (`instrument` = 4) не получится. В ответ Вы получите статус-код 422 - tags: - - Ставки - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - advertId - - type - - cpm - - param - properties: - advertId: - description: Идентификатор кампании, где меняется ставка - type: integer - example: 789 - type: - description: | -
-
кампании, где меняется ставка:
-
4 - кампания в каталоге
-
5 - кампания в карточке товара
-
6 - кампания в поиске
-
7 - кампания в рекомендациях на главной странице
-
8 - автоматическая кампания
-
9 - кампания поиск + каталог
-
- type: integer - enum: - - 5 - - 6 - - 7 - - 8 - - 9 - cpm: - description: Новое значение ставки - type: integer - example: 456 - param: - description: | - Параметр, для которого будет внесено изменение. Является значением `subjectId` (для кампании в поиске и рекомендациях), `setId` (для кампании в карточке товара) или `menuId` (для кампании в каталоге). -
Для автоматической кампании указывать этот параметр не требуется. - type: integer - example: 23 - instrument: - description: тип кампании для изменения ставки в Поиск + Каталог (4 - каталог, 6 - поиск) - type: integer - example: 4 - responses: - '200': - description: Размер ставки изменен - '400': - description: Размер ставки не изменен - content: - application/json: - schema: - type: string - examples: - IncorrectParamAdv: - $ref: '#/components/examples/IncorrectParamAdv' - IncorrectTypeAdv: - $ref: '#/components/examples/IncorrectTypeAdv' - IncorrectCpmAdv: - $ref: '#/components/examples/IncorrectCpmAdv' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: Размер ставки не изменен - content: - application/json: - schema: - type: string - examples: - RequestBodyProcessErrorAdv: - $ref: '#/components/examples/RequestBodyProcessErrorAdv' - AmountNotChanged: - $ref: '#/components/examples/AmountNotChanged' - /adv/v0/allcpm: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Список ставок по типу размещения кампании - description: | - Метод позволяет получить список ставок по типу размещения кампании.
-
Допускается 5 запросов в секунду.
- С помощью этого метода изменить ставку невозможно.
- tags: - - Ставки - parameters: - - name: type - in: query - description: "Кампании:\n * `4`\_— в каталоге\n * `5`\_— в карточке товара\n * `6`\_— в поиске\n * `7`\_— в рекомендациях на главной странице\n * `9`\_— поиск\_+ каталог\n" - schema: - type: integer - enum: - - 4 - - 5 - - 6 - - 7 - - 9 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - param: - description: | - Массив параметров запроса, по которым будет получен список ставок активных кампаний: должен быть значением `menuId` (для кампании в каталоге), `subjectId` (для кампании в поиске и рекомендациях) или `setId` (для кампании в карточке товара). - type: array - items: - type: integer - example: - param: - - 699 - - 344 - - 385 - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - param: - description: Значение параметра (param) запроса + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + items: + type: integer + example: + - 1111111111 + - 2222222222 + - 3333333333 + - 4444444444 + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/auto/updatenm: + servers: + - url: https://advert-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Changing the list of nomenclatures in an automatic campaign + description: | + The method allows you to add and remove nomenclatures. + +
+ It is possible to add only those nomenclatures that will be returned in the method response List of nomenclatures in an automatic campaign.
You cannot delete a one single nomenclature from a campaign. +
+ + There is no validation by the `delete` parameter. + + If you receive a response with a status code of 200 and no change has occurred, check the request for documentation compliance + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 60 requests | 1 second | 5 requests | +
+ tags: + - Campaigns Parameters + parameters: + - name: id + in: query + description: Campaign ID + schema: type: integer - cpm: - description: Информация о ставке(-ах) - type: array - items: - type: object - properties: - Cpm: - description: Размер ставки - type: integer - Count: - description: Количество ставок - type: integer - example: - - param: 344 - cpm: - - Cpm: 235 - Count: 1 - - param: 385 - cpm: - - Cpm: 187 - Count: 1 - - Cpm: 185 - Count: 2 - - Cpm: 179 - Count: 2 - '400': - description: Неверная форма запроса - content: - application/json: - schema: - type: string - examples: - RequestBodyProcessErrorAdv: - $ref: '#/components/examples/RequestBodyProcessErrorAdv' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v0/start: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Запуск кампании - description: | - Метод позволяет запускать кампании находящиеся в статусах 4 - готова к запуску или 11 - кампания на паузе. -
Допускается 5 запросов в секунду.
- Для запуска кампании со статусом 11 необходимо наличие у неё пополненного бюджета.
-
-
Чтобы запустить кампанию со статусом 4 необходимо выполнить два условия (поочередность действий значения не имеет):
-
1. После создания кампании в кабинете ВБ. Продвижение необходимо нажать кнопку "Применить изменения".
-
2. Установить бюджет.
-
- tags: - - Активность кампании - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234 - required: true - responses: - '200': - description: Статус изменен - '400': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - InvalidRcIdAdv: - $ref: '#/components/examples/InvalidRcIdAdv' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - StatusNoChangeAdv: - $ref: '#/components/examples/StatusNoChangeAdv' - /adv/v0/pause: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Пауза кампании - description: | - Кампании в статусе "9 - идут показы" - можно поставить на паузу, сделав GET на `/adv/v0/pause?id=***`. -
Допускается 5 запросов в секунду. - tags: - - Активность кампании - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234 - required: true - responses: - '200': - description: Статус изменен - '400': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - InvalidRcIdAdv: - $ref: '#/components/examples/InvalidRcIdAdv' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - StatusNoChangeAdv: - $ref: '#/components/examples/StatusNoChangeAdv' - /adv/v0/stop: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Завершение кампании - description: Метод позволяет завершить кампанию, находящуюся в статусе 9 или 11 или 4.
Допускается 5 запросов в секунду. - tags: - - Активность кампании - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234 - required: true - responses: - '200': - description: Статус изменен - '400': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - InvalidRcIdAdv: - $ref: '#/components/examples/InvalidRcIdAdv' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - StatusNoChangeAdv: - $ref: '#/components/examples/StatusNoChangeAdv' - /adv/v1/balance: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Баланс - description: | - Метод позволяет получать информацию о счёте, балансе и бонусах продавца.
- Допускается 1 запрос в секунду. - tags: - - Финансы - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - balance: - description: Счёт, рублей - type: integer - net: - description: Баланс, рублей - type: integer - bonus: - description: Бонусы, рублей - type: integer - example: - balance: 11083 - net: 0 - bonus: 15187 - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/budget: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Бюджет кампании - description: | - Метод позволяет получать информацию о бюджете кампании.
- Допускается 4 запроса в секунду. - tags: - - Финансы - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - cash: - description: Поле не используется. Значение всегда 0. - type: integer - netting: - description: Поле не используется. Значение всегда 0. - type: integer - total: - description: Бюджет кампании, ₽ - type: integer - example: - cash: 0 - netting: 0 - total: 500 - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - CampaignNotBelongSeller: - $ref: '#/components/examples/CampaignNotBelongSeller' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/budget/deposit: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Пополнение бюджета кампании - description: | - Метод позволяет пополнять бюджет кампании. -
Допускается 1 запрос в секунду. - tags: - - Финансы - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - sum: - description: Сумма пополнения (min. 500 ₽) - type: integer - example: 500 - type: + example: 1 + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + add: + description: The nomenclatures that need to be added + type: array + items: + type: integer + delete: + description: The nomenclatures that need to be deleted + type: array + items: + type: integer + example: + add: + - 11111111 + - 44444444 + delete: + - 55555555 + responses: + '200': + description: Success + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responseAdvError1' + examples: + CampaignNotFoundAdv: + $ref: '#/components/examples/CampaignNotFoundAdv' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/count: + servers: + - url: https://advert-media-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Media campaigns number + description: | + Method allows you to get the number of the seller's media campaigns. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 10 requests | 100 milliseconds | 10 requests | +
+ tags: + - Media + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + all: + description: Total number of media campaigns with all statuses and types + type: integer + adverts: + type: object + properties: + type: + description: | +
+
Media campaign type:
+
1 — daily basis
+
2 — views basis
+
+ type: integer + status: + description: | +
+
Media campaign status:
+
1 — template
+
2 — moderation +
3 — rejected (with the possibility to resubmit for moderation)
+
4 — ready for launch
+
5 — scheduled
+
6 — running
+
7 — completed
+
8 — refused
+
9 — paused by seller
+
10 — paused due to daily limit
+
11 — paused
+
+ type: integer + count: + description: Number of media campaigns + type: integer + example: + all: 6 + adverts: + type: 2 + status: 7 + count: 2 + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/adverts: + servers: + - url: https://advert-media-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: List of media campaigns + description: | + The method allows to get the list of media campaigns of the seller + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 10 requests | 100 milliseconds | 10 requests | +
+ tags: + - Media + parameters: + - name: status + in: query description: | -
-
Тип источника пополнения:
-
0 - Счёт
-
1 - Баланс
-
3 - Бонусы
-
- type: integer - example: 1 - return: - type: boolean - description: Флаг возврата ответа (`true` - в ответе вернется обновлённый размер бюджета кампании, `false` или не указать параметр вообще - не вернётся.) - responses: - '200': - description: Бюджет пополнен - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ResponseWithReturn' - examples: - ResponseWithReturn: - $ref: '#/components/examples/ResponseWithReturn' - '400': - description: Бюджет не пополнен - content: - application/json: - schema: - type: object - properties: - error: - type: string - examples: - DepositAmountMultiple50: - description: Сумма пополнения должна быть кратна 50 руб - value: - error: Сумма пополнения должна быть кратна 50 руб - MinimumDepositAmountIs500: - description: Минимальная сумма пополнения 500 рублей - value: - error: Минимальная сумма пополнения 500 рублей - /adv/v1/upd/intervals: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получение месячных интервалов для истории затрат - description: | - Метод позволяет получать массив с датами начала месяца, когда у продавца были расходы. -
Допускается 1 запрос в секунду. - tags: - - Финансы - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: string - format: time-date - example: - - '2023-07-01T00:00:00Z' - - '2023-06-01T00:00:00Z' - - '2023-05-01T00:00:00Z' - - '2023-04-01T00:00:00Z' - - '2023-03-01T00:00:00Z' - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/upd: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получение истории затрат - description: | - Метод позволяет получать историю затрат. -
Допускается 1 запрос в секунду. - tags: - - Финансы - parameters: - - name: from - in: query - description: Начало интервала - schema: - type: string - format: date - example: '2023-07-31' - required: true - - name: to - in: query - description: | - Конец интервала.
- (Минимальный интервал 1 день, максимальный 31) - schema: - type: string - format: date - example: '2023-08-02' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - updNum: - description: Номер выставленного документа (при наличии) +
+
Media campaign status:
+
1 — template
+
2 — moderation +
3 — rejected (with the possibility to resubmit for moderation)
+
4 — ready for launch
+
5 — scheduled
+
6 — running
+
7 — completed
+
8 — refused
+
9 — paused by seller
+
10 — paused due to daily limit
+
11 — paused
+
+ schema: type: integer - updTime: - description: Время списания - type: string - format: time-date - updSum: - description: Выставленная сумма + example: 1 + - name: type + in: query + description: | +
+
Media campaign type:
+
1 — daily basis
+
2 — views basis
+
+ schema: type: integer - advertId: - description: Идентификатор кампании + example: 1 + - name: limit + in: query + description: Number of campaigns in the response + schema: type: integer - campName: - description: Название кампании - type: string - advertType: - description: Тип кампании + example: 1 + - name: offset + in: query + description: Offset relative to the first media campaign + schema: type: integer - paymentType: - description: | -
Источник списания:
Баланс
Бонусы
Счет
+ example: 1 + - name: order + in: query + description: | +
+
The order in which the response is displayed:
+
create — by time of media campaign creation
+
id — by ID of media campaign creation
+
+ schema: type: string - advertStatus: - description: | -
-
Статус кампании:
-
4 - готова к запуску
-
7 - завершена
-
8 - отказался
-
9 - активна
-
11 - приостановлена
-
+ example: id + - name: direction + in: query + description: | +
+
Sorting order:
+
desc — upward
+
asc — smaller to larger
+
+ schema: + type: string + example: desc + responses: + '200': + description: Success + content: + application/json: + schema: + type: array + items: + type: object + properties: + advertId: + description: Media campaign ID + type: integer + name: + description: Media campaign name + type: string + brand: + description: Brand name + type: string + type: + description: | +
+
Media campaign type:
+
1 — daily basis
+
2 — views basis
+
+ type: integer + status: + description: | +
+
Media campaign status:
+
1 — template
+
2 — moderation +
3 — rejected (with the possibility to resubmit for moderation)
+
4 — ready for launch
+
5 — scheduled
+
6 — running
+
7 — completed
+
8 — refused
+
9 — paused by seller
+
10 — paused due to daily limit
+
11 — paused
+
+ type: integer + createTime: + description: Time of media campaign creation + type: string + format: date-time + endTime: + description: 'Time of completion of the media campaign ' + type: string + format: date-time + example: + - advertId: 123456 + name: тост + brand: goosb + type: 2 + status: 8 + createTime: '2023-03-25T20:35:57.116943+03:00' + - advertId: 54321 + name: тест + brand: bobr + type: 1 + status: 7 + createTime: '2023-07-24T16:48:20.935599+03:00' + endTime: '2023-07-25T20:35:50.104978Z' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /adv/v1/advert: + servers: + - url: https://advert-media-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Information about media campaign + description: | + The method allows to get information about a single media campaign + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 10 requests | 100 milliseconds | 10 requests | +
+ tags: + - Media + parameters: + - name: id + in: query + description: Media campaign ID + schema: type: integer - example: - - updNum: 0 - updTime: '2023-07-31T12:12:54.060536+03:00' - updSum: 24 - advertId: 3355881 - campName: лук лучок - advertType: 6 - paymentType: Баланс - advertStatus: 9 - - updNum: 0 - updTime: null - updSum: 107 - advertId: 3366882 - campName: золотая луковица - advertType: 8 - paymentType: Счет - advertStatus: 11 - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/payments: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получение истории пополнений счета - description: | - Метод позволяет получать историю пополнений счёта. -
Допускается 1 запрос в секунду. - tags: - - Финансы - parameters: - - name: from - in: query - description: Начало интервала - schema: - type: string - format: date - example: '2023-07-31' - - name: to - in: query - description: | - Конец интервала.
- (Минимальный интервал 1 день, максимальный 31) - schema: - type: string - format: date - example: '2023-08-02' - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - id: - description: Идентификатор платежа + example: 23569 + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + advertId: + description: Media campaign ID + type: integer + name: + description: Media campaign name + type: string + brand: + description: Brand name + type: string + type: + description: | +
+
Media campaign type:
+
1 — daily basis
+
2 — views basis
+
+ type: integer + status: + description: | +
+
Media campaign status:
+
1 — template
+
2 — moderation +
3 — rejected (with the possibility to resubmit for moderation)
+
4 — ready for launch
+
5 — scheduled
+
6 — running
+
7 — completed
+
8 — refused
+
9 — paused by seller
+
10 — paused due to daily limit
+
11 — paused
+
+ type: integer + createTime: + description: Time of media campaign creation + type: string + format: date-time + extended: + type: object + properties: + reason: + description: Moderator's remark + nullable: true + type: string + expenses: + description: Expenses + type: integer + from: + description: Start of media campaign displays + type: string + format: date-time + to: + description: End of media campaign displays + type: string + format: date-time + updated_at: + description: Time of change in media campaign + type: string + format: date-time + price: + description: Cost of placement by day (for type 1) + type: integer + budget: + description: Budget balance (for type 2) + type: integer + operation: + description: Source of charge-off (1 - Balance Sheet, 2 - Account) + type: integer + contract_id: + description: Contract ID (for contracted sellers) + type: integer + items: + description: | + Banner information. +
+ The response may not contain all fields, it depends on your media campaign configuration. + type: array + items: + type: object + properties: + id: + description: Banner ID + type: integer + name: + description: Brand + type: string + status: + description: Status (same as media campaign status) + type: integer + place: + description: Placement on the page + type: integer + budget: + description: Budget + type: integer + daily_limit: + description: Daily limit (for display banners) + type: integer + category_name: + description: Category name + type: string + cpm: + description: Bid + type: integer + url: + description: The URL of the page the user lands on when they click on the banner + type: string + advert_type: + description: | +
+
Campaign type:
+
1 — banner
+
2 — pop-up menu
+
3 — mailings
+
4 — social networks
+
5 — push notification in WB app
+
+ type: integer + created_at: + description: Banner creation date + format: date-time + type: string + updated_at: + description: Banner update date + format: date-time + type: string + date_from: + description: Banner start date + format: date-time + type: string + date_to: + description: Banner stop date + format: date-time + type: string + nms: + description: WB articles + type: array + items: + type: integer + bottomText1: + description: Text under the banner + type: string + bottomText2: + description: Text under the banner, second string + type: string + message: + description: Notification or mailing text + type: string + additionalSettings: + description: | + Additional information. +
+
Mailing format:
+
1 — common
+
2 — segment
+
3 — unique
+
+
+
Social network:
+
1 — VK (vk.ru)
+
2 — OK (ok.ru)
+
+ type: integer + receiversCount: + description: Number of push notification recipients + type: integer + subject_id: + description: Parent category ID for the good + type: integer + subject_name: + description: Parent category name for the good + type: string + action_name: + description: Promo name + type: string + show_hours: + description: Display time + type: array + items: + type: object + properties: + From: + description: Start time + type: integer + To: + description: End time + type: integer + Erid: + description: Unique campaign ID for the ad data operator + type: string + example: + advertId: 23569 + name: Реклама денег принеси + brand: Plank + type: 2 + status: 11 + createTime: '2023-07-19T11:13:41.195138+03:00' + extended: + reason: Для возобновления показов пополните бюджет медиакампании + expenses: 10000 + from: '2023-07-19T12:05:35.847348Z' + to: '2123-07-20T08:14:13.079176+03:00' + updated_at: '2023-07-21T13:25:31.129766+03:00' + price: 0 + budget: 0 + operation: 1 + contract_id: 0 + items: + - id: 68080 + name: Унисон + status: 7 + place: 2 + budget: 650000 + daily_limit: 500 + category_name: Главная + cpm: 351 + url: https://www.wildberries.ru/promotions/ssylka-na-akciyou + advert_type: 1 + created_at: '2023-11-01T15:40:46.86165+03:00' + updated_at: '2023-11-08T23:44:33.248229+03:00' + date_from: '2023-11-01T16:05:22.286002Z' + date_to: '2023-11-09T17:27:32.745869+03:00' + nms: + - 123456 + - 11111111 + bottomText1: string + bottomText2: string + message: string + additionalSettings: 1 + receiversCount: 1 + subject_id: 6945 + subject_name: Бельё + action_name: Распродажа! Создай себе домашний уют! + show_hours: + - From: 7 + To: 8 + Erid: string + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/calendar/promotions: + servers: + - url: https://dp-calendar-api.wildberries.ru + get: + tags: + - Promotions Calendar + security: + - HeaderApiKey: [] + summary: Promotions List + description: | + Returns a promotions list with dates and times of occurrence + +
+ Request limit per one seller's account for all methods in the Promotions Calendar category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/startDateTime' + - $ref: '#/components/parameters/endDateTime' + - $ref: '#/components/parameters/allPromo' + - $ref: '#/components/parameters/limitPromotion' + - $ref: '#/components/parameters/offset' + responses: + '200': + $ref: '#/components/responses/PromotionsSuccessResponse' + '400': + $ref: '#/components/responses/ErrorFailedParseData' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/calendar/promotions/details: + servers: + - url: https://dp-calendar-api.wildberries.ru + get: + tags: + - Promotions Calendar + security: + - HeaderApiKey: [] + summary: Promotions Details + description: | + Returns detailed information about the selected promotions + +
+ Request limit per one seller's account for all methods in the Promotions Calendar category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/promotionIDs' + responses: + '200': + $ref: '#/components/responses/PromotionsGetByIDSuccessResponse' + '400': + $ref: '#/components/responses/ErrorFailedParseData' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/calendar/promotions/nomenclatures: + servers: + - url: https://dp-calendar-api.wildberries.ru + get: + tags: + - Promotions Calendar + security: + - HeaderApiKey: [] + summary: List of Products for Participating in the Promotion + description: | + Returns a list of products suitable for participation in the promotion. + + Not applicable for auto promotions + +
+ Request limit per one seller's account for all methods in the Promotions Calendar category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ parameters: + - $ref: '#/components/parameters/promotionID' + - $ref: '#/components/parameters/inAction' + - $ref: '#/components/parameters/limitNomenclature' + - $ref: '#/components/parameters/offset' + responses: + '200': + $ref: '#/components/responses/ResponsePromotionsGoodsLists' + '400': + $ref: '#/components/responses/ErrorWrongParameters' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + $ref: '#/components/responses/ErrParameterValuesIncorrect' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/calendar/promotions/upload: + servers: + - url: https://dp-calendar-api.wildberries.ru + post: + tags: + - Promotions Calendar + security: + - HeaderApiKey: [] + summary: Add Product to the Promotion + description: | + Creates a product upload for the promotion.
The upload status can be checked using [separate methods](/openapi/work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1history~1tasks/get). + + Not applicable for auto promotions + +
+ Request limit per one seller's account for all methods in the Promotions Calendar category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 6 seconds | 10 requests | 600 milliseconds | 5 requests | + +
+ requestBody: + $ref: '#/components/requestBodies/PromotionsSupplierTaskRequest' + responses: + '200': + $ref: '#/components/responses/UploadSuccessResponse' + '400': + $ref: '#/components/responses/ErrorWrongParameters' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + $ref: '#/components/responses/UnprocessableEntity' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/new-feedbacks-questions: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Unseen feedbacks and questions + description: | + The method displays information about the seller's unseen feedbacks and questions + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Questions + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + hasNewQuestions: + type: boolean + description: Existence of unseen questions (`true` exist, `false` doesn't exist) + example: true + hasNewFeedbacks: + type: boolean + description: Existence of unseen feedbacks (`true` exist, `false` doesn't exist) + example: false + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: null + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/questions/count-unanswered: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Unanswered questions + description: | + The method allows you to get the number of unanswered questions for today and for all time + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Questions + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Number of unanswered questions + example: 24 + countUnansweredToday: + type: integer + description: Number of unanswered questions for today + example: 0 + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: null + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/questions/count: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Number of questions + description: | + The method allows to get the number of questions for requested period + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Questions + parameters: + - name: dateFrom + in: query + description: The start date of the period in Unix timestamp format + schema: type: integer - date: - description: Дата платежа - type: string - format: time-date - sum: - description: Сумма платежа + example: 1688465092 + - name: dateTo + in: query + description: The end date of the period in Unix timestamp format + schema: type: integer - type: - description: | -
-
Тип источника списания:
-
0 - Счёт
-
1 - Баланс
-
3 - Картой
-
+ example: 1688465092 + - name: isAnswered + in: query + description: | + Processed questions (`true`) or unprocessed questions (`false`).
If a query parameter is not specified, processed feedbacks will be returned. + schema: + type: boolean + example: false + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: integer + description: Number of questions + example: 77 + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + IsAnsweredErr400: + $ref: '#/components/examples/IsAnsweredErr400' + DateFromErr400: + $ref: '#/components/examples/DateFromErr400' + DateToErr400: + $ref: '#/components/examples/DateToErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/questions: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Question list + description: | + The method allows you to get a list of questions by the specified parameters with pagination and sorting.
It is possible to get a maximum of 10,000 questions per query + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Questions + parameters: + - name: isAnswered + in: query + description: | + Answered questions (`true`) or unanswered questions(`false`) + schema: + type: boolean + required: true + - name: nmId + in: query + description: WB article + schema: type: integer - statusId: - description: | -
-
Статус:
-
0 - ошибка
-
1 - обработано
-
+ - name: take + in: query + description: | + Number of requested questions (the maximum possible value for the parameter is 10,000, and the total amount of `take` and `skip` parameters must not exceed 10,000) + schema: type: integer - cardStatus: - description: | -
-
Статус операции(при оплате картой):
-
success - успех
-
fail - неуспех
-
pending - в ожидании ответа
-
unknown - неизвестно
-
- type: string - example: - - id: 1036666 - date: '2022-02-04T09:06:47.985843Z' - sum: 600 - type: 0 - statusId: 1 - cardStatus: '' - - id: 55261296 - date: '2023-04-13T10:07:42' - sum: 1500 - type: 3 - statusId: 1 - cardStatus: succeeded - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v0/params/subject: - servers: - - url: https://advert-api.Wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Словарь значений параметра subjectId - description: | - Метод позволяет получить список значений параметра subjectId.
- Допускается 5 запросов в секунду. - tags: - - Словари - parameters: - - name: id - in: query - description: | - Идентификатор предметной группы, для которой создана кампания (для кампаний в поиске и рекомендациях).
- Принимает значение параметра `subjectId` из кампании.
- При пустом параметре вернётся весь список существующих значений. - schema: - type: integer - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - id: - description: Значение для параметра `subjectId` + required: true + - name: skip + in: query + description: | + Number of questions to skip (maximum possible value for the parameter is 10,000, and the total amount of `take` and `skip` parameters must not exceed 10,000) + schema: type: integer - name: - description: Название предметной группы, для которой создана кампания + required: true + - name: order + in: query + description: Sorting questions by date (`dateAsc`/`dateDesc`) + schema: type: string - example: - - id: 699 - name: Гелевые полоски - - id: 12345 - name: Гелевые кружочки - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v0/params/menu: - servers: - - url: https://advert-api.Wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Словарь значений параметра menuId - description: Метод позволяет получить список значений параметра menuId.
Допускается 5 запросов в секунду. - tags: - - Словари - parameters: - - name: id - in: query - description: | - Идентификатор меню, где размещается кампания (для кампаний в каталоге).
- Принимает значение параметра `menuId` из кампании.
- При пустом параметре вернётся весь список существующих значений. - schema: - type: integer - example: 8967 - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - id: - description: Значение для параметра `menuId` + - name: dateFrom + in: query + description: The start date of the period in Unix timestamp format + schema: type: integer - name: - description: Название меню, где размещается кампания - type: string - example: - - id: 8967 - name: Уход за кожей - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v0/params/set: - servers: - - url: https://advert-api.Wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Словарь значений параметра setId - description: | - Метод позволяет получить список значений параметра setId.
- Допускается 5 запросов в секунду. - tags: - - Словари - parameters: - - name: id - in: query - description: | - Идентификатор сочетания предмета и пола (для кампаний в карточке товара).
- Принимает значение параметра `setId` из кампании.
- При пустом параметре вернётся весь список существующих значений. - schema: - type: integer - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - id: - description: Значение для параметра `setId` + example: 1688465092 + - name: dateTo + in: query + description: The end date of the period in Unix timestamp format + schema: type: integer - name: - description: Сочетание предмета и пола + example: 1688465092 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Number of pending questions + countArchive: + type: integer + description: Number of questions processed + questions: + description: Array of question structures + type: array + items: + type: object + properties: + id: + type: string + description: question id + text: + type: string + description: question text + createdDate: + type: string + format: date-time + description: Date and time the question was created + state: + type: string + description: | + Question status: + - `none` - question rejected by seller (this question doesn't appear on the buyer portal) + - `wbRu` - answer provided, the question is displayed on the buyers site + - `suppliersPortalSynch` - new question + answer: + description: Answer structure + nullable: true + type: object + properties: + text: + type: string + description: Answer text + editable: + type: boolean + description: Ability to edit answer (`false` - unable, `true` - able to) + createDate: + type: string + format: date-time + description: Date and time the answer was created + productDetails: + type: object + description: Product structure + properties: + nmId: + type: integer + description: WB article + imtId: + type: integer + description: Product card ID + productName: + type: string + description: Product name + supplierArticle: + type: string + description: Seller's article + supplierName: + type: string + description: Seller's name + brandName: + type: string + description: Brand name + wasViewed: + type: boolean + description: Check that question was viewed + isWarned: + type: boolean + description: | + Suspicious question indicator.
+ If `true`, the question is published, but on the seller portal, you will see a banner saying **Suspicious message** + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: + data: + countUnanswered: 24 + countArchive: 508 + questions: + - id: 2ncBtX4B9I0UHoornoqG + text: Question text + createdDate: '2022-02-01T11:18:08.769513469Z' + state: suppliersPortalSynch + answer: null + productDetails: + imtId: 11157265 + nmId: 14917842 + productName: Coffee + supplierArticle: '123401' + supplierName: ' ГП Реклама и услуги' + brandName: Nescafe + wasViewed: false + isWarned: false + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + patch: + security: + - HeaderApiKey: [] + summary: Working with questions + description: | + Depending on the request body, you can: + - View question. + - Reject question. + - Answer question or edit the answer. + + It is possible to edit a response to a question within 2 months (60 days), after the response has been submitted and only once. + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Questions + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + required: + - id + - wasViewed + properties: + id: + description: Question ID + type: string + example: n5um6IUBQOOSTxXoo0gV + wasViewed: + description: Viewed (`true`), not viewed (`false`) + type: boolean + example: true + - type: object + required: + - id + - answer + - state + properties: + id: + type: string + description: Question ID + example: n5um6IUBQOOSTxXoo0gV + answer: + type: object + required: + - text + properties: + text: + type: string + description: Answer text + example: answer text + state: + type: string + description: | + - `none` - question rejected by seller (this question doesn't appear on the buyer portal). + - `wbRu` - answer provided, the question is displayed on the buyers site. + examples: + ViewQuestion: + description: View question + value: + id: n5um6IUBQOOSTxXoo0gV + wasViewed: true + RejectQuestion: + description: Reject question + value: + id: n5um6IUBQOOSTxXoo0gV + answer: + text: текст ответа + state: none + AnswerQuestionOrEditAnswer: + description: Answer question or edit the answer + value: + id: n5um6IUBQOOSTxXoo0gV + answer: + text: текст ответа + state: wbRu + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: + data: null + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + '404': + description: Not found + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr404: + $ref: '#/components/examples/FeedbackErr404' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/question: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Get the question by ID + description: | + The method allows you to get a question by its ID + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Questions + parameters: + - name: id + in: query + required: true + description: Question ID + schema: type: string - example: - - id: 477 - name: Подушки для малышей - - id: 744 - name: Хлопушки для малышей - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/supplier/subjects: - servers: - - url: https://advert-api.Wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Предметы для кампаний - description: | - Возвращает предметы, номенклатуры из которых можно добавить в кампании. Максимум 1 запрос в 12 секунд. - tags: - - Словари - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: array - items: - type: object - properties: - id: - description: ID предмета + example: ljAVapEBL38RyMdRln61 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + id: + type: string + description: Question ID + text: + type: string + description: Question text + createdDate: + type: string + format: date-time + description: Date and time the question was created + state: + type: string + description: | + Question status: + - `none` - on the buyer portal + - `wbRu` - answer provided, the question is displayed on the buyers site + - `suppliersPortalSynch`- new question + answer: + description: Answer structure + type: object + properties: + text: + type: string + description: Answer text + editable: + type: boolean + description: Ability to edit answer (`false` - unable, `true` - able to) + createDate: + type: string + format: date-time + description: Date and time the answer was created + productDetails: + type: object + description: Product structure + properties: + nmId: + type: integer + description: WB article + imtId: + type: integer + description: Product card ID + productName: + type: string + description: Product name + supplierArticle: + type: string + description: Seller's article + supplierName: + type: string + description: Seller's name + brandName: + type: string + description: Brand name + wasViewed: + type: boolean + description: Check that question was viewed + isWarned: + type: boolean + description: | + Suspicious question indicator.
+ If `true`, the question is published, but on the seller portal, you will see a banner saying **Suspicious message** + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: null + example: + data: + countUnanswered: 24 + countArchive: 508 + questions: + - id: 2ncBtX4B9I0UHoornoqG + text: Question text + createdDate: '2022-02-01T11:18:08.769513469Z' + state: suppliersPortalSynch + answer: null + productDetails: + imtId: 11157265 + nmId: 14917842 + productName: Coffee + supplierArticle: '123401' + supplierName: ' ГП Реклама и услуги' + brandName: Nescafe + wasViewed: false + isWarned: false + error: false + errorText: '' + additionalErrors: null + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + '422': + description: Error processing request parameters + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + responseGetQestionByIdErrEx: + $ref: '#/components/examples/ResponseGetQestionByIdErrEx' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks/count-unanswered: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Unanswered feedbacks + description: | + The method allows you to get the number of unanswered feedbacks for today, for all time and get an estimate of all feedbacks + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Number of unanswered feedbacks + example: 1 + countUnansweredToday: + type: integer + description: Number of unanswered feedbacks for today + example: 0 + valuation: + type: string + description: Average rating of all feedbacks + example: '4.7' + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: null + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks/count: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Number of feedbacks + description: | + The method allows to get the number of feedbacks + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + parameters: + - name: dateFrom + in: query + description: The start date of the period in Unix timestamp format + schema: type: integer - name: - description: Предмет - type: string - count: - description: Количество Артикулов Wildberries (`nmId`) с таким предметом. + example: 1688465092 + - name: dateTo + in: query + description: The end date of the period in Unix timestamp format + schema: type: integer - example: - - name: 3D очки - id: 2560 - count: 1899 - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '404': - description: '' - /adv/v2/supplier/nms: - servers: - - url: https://advert-api.wildberries.ru - post: - security: - - HeaderApiKey: [] - summary: Номенклатуры для кампаний - description: "Возвращает номенклатуры, которые можно добавить в кампании.
\n\nМаксимум 5 запросов в\_минуту\n" - tags: - - Словари - requestBody: - description: ID предметов, для которых нужно получить номенклатуры - content: - application/json: - schema: - type: array - items: - type: integer - example: - - 123 - - 456 - - 765 - - 321 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: array - description: Номенклатуры для кампаний - items: - type: object - properties: - title: - type: string - description: Название товара - example: Плед - nm: + example: 1688465092 + - name: isAnswered + in: query + description: | + Processed feedbacks (`true`) or unprocessed feedbacks (`false`). If a query parameter is not specified, processed feedbacks s will be returned. + schema: + type: boolean + example: false + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: integer + description: Number of feedbacks + example: 724583 + error: + type: boolean + description: Error presence + example: false + errorText: + type: string + description: Error description + example: '' + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + IsAnsweredErr400: + $ref: '#/components/examples/IsAnsweredErr400' + DateFromErr400: + $ref: '#/components/examples/DateFromErr400' + DateToErr400: + $ref: '#/components/examples/DateToErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Feedbacks list + description: | + The method allows you to get a list of feedbacks by the specified parameters with pagination and sorting + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + parameters: + - name: isAnswered + in: query + required: true + description: Answered feedbacks (`true`) or unanswered feedbacks (`false`) + schema: + type: boolean + example: false + - name: nmId + in: query + description: WB article + schema: type: integer - description: Артикул Wildberries (`nmId`) - example: 146168367 - subjectId: + example: 5870243 + - name: take + in: query + required: true + description: Number of feedbacks (max. 5 000) + schema: type: integer - description: ID предмета - example: 765 - '400': - description: Неправильный запрос - content: - application/json: - schema: - type: string - example: Ошибка обработки тела запроса - '401': - description: Пользователь не авторизован - '429': - description: Слишком много запросов - /adv/v2/fullstats: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Статистика кампаний - description: | - Возвращает статистику кампаний. -
Максимум 1 запрос в минуту. -
Данные вернутся для кампаний в статусе 7, 9 и 11. -
Важно. В запросе можно передавать либо параметр `dates` либо параметр `interval`, но не оба.
Можно отправить запрос только с ID кампании. При этом вернутся данные за последние сутки, но не за весь период существования кампании. -
- tags: - - Статистика - requestBody: - required: true - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/RequestWithDate' - - $ref: '#/components/schemas/RequestWithInterval' - - $ref: '#/components/schemas/RequestWithCampaignID' - examples: - RequestWithDate: - $ref: '#/components/examples/RequestWithDate' - RequestWithInterval: - $ref: '#/components/examples/RequestWithInterval' - RequestWithCampaignID: - $ref: '#/components/examples/RequestWithoutIDParam' - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ResponseWithDate' - - $ref: '#/components/schemas/ResponseWithInterval' - examples: - ResponseWithDate: - $ref: '#/components/examples/ResponseWithDate' - ResponseWithInterval: - $ref: '#/components/examples/ResponseWithInterval' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvError1' - examples: - CampaignNotFoundAdv: - $ref: '#/components/examples/CampaignNotFoundAdv' - responseIncorrectBeginDate: - $ref: '#/components/examples/responseIncorrectBeginDate' - responseIncorrectEndDate: - $ref: '#/components/examples/responseIncorrectEndDate' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/auto/stat: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Статистика автоматической кампании - description: | - Метод позволяет получать краткую статистику по автоматической кампании.
- Допускается 1 запрос в 6 секунд. - tags: - - Статистика - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: number - ctr: - description: | - CTR (Click-Through Rate) — показатель кликабельности.
- Отношение числа кликов к количеству показов. Выражается в процентах. - type: number - cpc: - description: CPC(от англ. cost per click — цена за клик) — это цена клика по продвигаемому товару. - type: number - spend: - description: Затраты, ₽. - type: integer - example: - views: 68 - clicks: 3 - ctr: 4.41 - cpc: 1.18 - spend: 3 - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvError1' - examples: - CampaignNotFoundAdv: - $ref: '#/components/examples/CampaignNotFoundAdv' - AvailableOnlyForAutoCampaign: - $ref: '#/components/examples/AvailableOnlyForAutoCampaign' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v2/auto/stat-words: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Статистика автоматической кампании по кластерам фраз - description: "

Возвращает кластеры ключевых фраз (наборы похожих), по которым показывались товары в кампании, и количество показов по ним. В ответ метода попадают только те фразы, по которым товары показывались хотя бы один раз.

Информация обновляется раз в\_15\_минут.

Максимум\_— 4 запроса секунду.

\n" - tags: - - Статистика - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - excluded: - description: "Исключения (минус-фразы) для товаров из кампании. Это фразы, которые вы задали с\_помощью метода Установка/удаление минус-фраз или в личном кабинете, в настройках кампании" - type: array - items: + example: 1 + - name: skip + in: query + required: true + description: Number of feedbacks for skip (max. 199990) + schema: + type: integer + example: 0 + - name: order + in: query + description: Sorting of feedbacks by date (dateAsc/dateDesc) + schema: type: string - example: - - Samsung - - Xiaomi - clusters: - description: Кластеры ключевых фраз - type: array - items: - type: object - properties: - cluster: - description: "Кластер\_— набор похожих ключевых фраз" - type: string - example: Телефон - count: - description: Сколько раз товары показывались по всем фразам из кластера - type: integer - example: 100 - keywords: - description: Ключевые фразы из кластера, по которым товары показывались хотя бы один раз - type: array - items: - type: string - example: - - Телефон - - Мобильный телефон - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvError1' - examples: - CampaignNotFoundAdv: - $ref: '#/components/examples/CampaignNotFoundAdv' - AvailableOnlyForAutoCampaign: - $ref: '#/components/examples/AvailableOnlyForAutoCampaign' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v2/auto/daily-words: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Детальная статистика автоматической кампании по ключевым фразам - description: "

Возвращает статистику по ключевым фразам за каждый день, когда кампания была активна.

Информация обновляется раз в\_15\_минут.

Максимум\_— 4 запроса секунду.

\n" - tags: - - Статистика - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - date: - description: Дата, когда пользователи просматривали товары из кампании - type: string - example: '2024-01-23T03:00:00+03:00' - stat: - description: Статистика по ключевым фразам - type: array - items: - type: object - properties: - keyword: - type: string - description: Ключевая фраза - example: Смартфон - views: - type: integer - description: Количество просмотров - example: 100 - clicks: - type: integer - description: Количество кликов - example: 500 - ctr: - type: number - description: "Click-Through Rate, отношение количества кликов к количеству показов,\_%" - example: 0.5 - sum: - type: number - description: Затраты, ₽ - example: 1000 - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvError1' - examples: - CampaignNotFoundAdv: - $ref: '#/components/examples/CampaignNotFoundAdv' - AvailableOnlyForAutoCampaign: - $ref: '#/components/examples/AvailableOnlyForAutoCampaign' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/stat/words: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Статистика поисковой кампании по ключевым фразам - description: | - Метод позволяет получать статистику поисковой кампании по ключевым фразам.
- Допускается максимум 4 запроса в секунду.
- Информация обновляется примерно каждые полчаса.
- tags: - - Статистика - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - words: - description: Блок информации по ключевым фразам - type: object - properties: - phrase: - description: Фразовое соответствие (минус фразы) - type: array - items: - type: string - strong: - description: Точное соответствие (минус фразы) - type: array - items: - type: string - excluded: - description: Минус фразы из поиска - type: array - items: - type: string - pluse: - description: Фиксированные фразы - type: array - items: - type: string - keywords: - description: Блок со статистикой по ключевым фразам - type: array - items: - type: object - properties: - keyword: - description: Ключевая фраза - type: string - count: - description: Количество просмотров по ключевой фразе - type: integer - fixed: - description: | - Фиксированные ключевые фразы (`true` - включены, `false` - выключены) - type: boolean - stat: - description: | - Массив информации по статистике.
- Первый элемент массива с `keyword: "Всего по кампании"` содержит суммарную информацию по всем ключевым фразам.
- Каждый следующий элемент массива содержит информацию по отдельной ключевой фразе.
- Отображается 60 ключевых фраз с наибольшим количеством просмотров. - type: array - items: - type: object - properties: - advertId: - description: Идентификатор кампании в системе Wildberries - type: integer - keyword: - description: Ключевая фраза - type: string - advertName: - description: Поле перманентно отключено - type: string - campaignName: - description: Название кампании - type: string - begin: - description: Дата запуска кампании - type: string - format: date-time - end: - description: Дата завершения кампании - type: string - format: date-time - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - frq: - description: Частота (отношение количества просмотров к количеству уникальных пользователей) - type: integer - ctr: - description: | - Показатель кликабельности (отношение числа кликов к количеству показов. Выражается в процентах). - type: number - cpc: - description: Стоимость клика, ₽ - type: number - duration: - description: Длительность кампании, в секундах - type: integer - sum: - description: Затраты, ₽. - type: number - example: - words: - phrase: [] - strong: [] - excluded: [] - pluse: - - детское постельное белье для мальчика 1.5 - keywords: - - keyword: постельное белье 1.5 - count: 772 - fixed: true - stat: - - advertId: 7703570 - keyword: Всего по кампании - advertName: '' - campaignName: Бельё - begin: '2023-07-03T15:15:38.287441+03:00' - end: '2023-07-03T15:15:38.287441+03:00' - views: 1846 - clicks: 73 - frq: 1.03 - ctr: 3.95 - cpc: 7.88 - duration: 769159 - sum: 575.6 - - advertId: 7703570 - keyword: постельное белье 1.5 детское - advertName: '' - campaignName: Бельё - begin: '2023-07-03T15:15:38.287441+03:00' - end: '2023-07-03T15:15:38.287441+03:00' - views: 1846 - clicks: 73 - frq: 1.03 - ctr: 3.95 - cpc: 7.88 - duration: 769159 - sum: 575.6 - '400': - description: '' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/seacat/stat: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Статистика кампаний Поиск + Каталог - description: | - Метод позволяет получать статистику по кампаниям Поиск + Каталог.
- Допускается 2 запроса в секунду. - tags: - - Статистика - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: - totalViews: - description: Суммарное количество просмотров - type: integer - totalClicks: - description: Суммарное количество кликов - type: integer - totalOrders: - description: Суммарное количество заказов - type: integer - totalSum: - description: Суммарные затраты, ₽. - type: integer - dates: - description: Блок статистики - type: array - items: - type: object - properties: - date: - description: Дата - type: string - format: date - search: - description: Поиск - type: object - properties: - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - orders: - description: Количество заказов - type: integer - sum: - description: Затраты, ₽. - type: integer - catalog: - description: Каталог - type: object - properties: - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - orders: - description: Количество заказов - type: integer - sum: - description: Затраты, ₽. - type: integer - example: - totalViews: 1117 - totalClicks: 27 - totalOrders: 0 - totalSum: 460 - dates: - - date: '2023-07-10' - search: - views: 1117 - clicks: 27 - orders: 0 - sum: 460 - catalog: - views: 6 - clicks: 0 - orders: 0 - sum: 0 - '400': - description: '' - content: - application/json: - schema: - type: object - properties: - error: - type: string - examples: - CampaignNotFoundAdv: - $ref: '#/components/examples/CampaignNotFoundAdv' - AvailableOnlyActiveCampaign: - $ref: '#/components/examples/AvailableOnlyActiveCampaign' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v0/rename: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Переименование кампании - description: Метод позволяет переименовать кампанию.
Допускается 5 запросов в секунду. - tags: - - Управление общими параметрами кампании - requestBody: - content: - application/json: - schema: - type: object - required: - - advertId - - name - properties: - advertId: - type: integer - description: Идентификатор кампании, у которой меняется название - name: - type: string - description: Новое название (максимум 100 символов) - example: - advertId: 2233344 - name: newnmame - responses: - '200': - description: Статус изменен - '400': - description: Неверная форма запроса - content: - application/json: - schema: - type: string - examples: - InvalidRcIdAdv: - $ref: '#/components/examples/InvalidRcIdAdv' - IncorrectName: - $ref: '#/components/examples/IncorrectName' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: '' - content: - application/json: - schema: - type: string - examples: - RequestBodyProcessErrorAdv: - $ref: '#/components/examples/RequestBodyProcessErrorAdv' - CompanyNameChangeErr: - $ref: '#/components/examples/CompanyNameChangeErr' - /adv/v1/search/supplier-subjects: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список предметов для кампании в поиске - description: | - Метод позволяет получать список предметов продавца и количество артикулов WB по каждому предмету. - -
Допускается 1 запрос в 12 секунд. - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - id: - description: Идентификатор предмета + enum: + - dateAsc + - dateDesc + - name: dateFrom + in: query + description: The start date of the period in Unix timestamp format + schema: + type: integer + example: 1688465092 + - name: dateTo + in: query + description: The end date of the period in Unix timestamp format + schema: + type: integer + example: 1688465092 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + countUnanswered: + type: integer + description: Number of unanswered feedbacks + countArchive: + type: integer + description: Number of archived feedbacks + feedbacks: + $ref: '#/components/schemas/responseFeedback' + error: + type: boolean + description: Error presence + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: + data: + countUnanswered: 52 + countArchive: 1000 + feedbacks: + - id: YX52RZEBhH9mrcYdEJuD + text: Спасибо, всё подошло + pros: Удобный + cons: Нет + productValuation: 5 + createdDate: '2024-09-26T10:20:48+03:00' + answer: + text: Пожалуйста. Ждём вас снова! + state: wbRu + editable: false + state: wbRu + productDetails: + imtId: 123456789 + nmId: 987654321 + productName: ВАЗ + supplierArticle: DP02/черный + supplierName: ГП Реклама и услуги + brandName: Бест Трикотаж + size: '0' + video: + previewImage: https://videofeedback01.wbbasket.ru/8defc853-7f62-4d6d-b236-8a16cfb63128/preview.webp + link: https://videofeedback01.wbbasket.ru/8defc853-7f62-4d6d-b236-8a16cfb63128/index.m3u8 + durationSec: 10 + wasViewed: true + photoLinks: + - fullSize: https://feedback04.wbbasket.ru/vol1333/part133337/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1333/part133337/123456789/photos/ms.jpg + - fullSize: https://feedback04.wbbasket.ru/vol1508/part150887/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1508/part150887/123456789/photos/ms.jpg + - fullSize: https://feedback04.wbbasket.ru/vol1486/part148682/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1486/part148682/123456789/photos/ms.jpg + userName: Николай + matchingSize: ok + isAbleSupplierFeedbackValuation: false + supplierFeedbackValuation: 1 + isAbleSupplierProductValuation: false + supplierProductValuation: 2 + isAbleReturnProductOrders: false + returnProductOrdersDate: '2024-08-20T16:39:49Z' + bables: + - цена + lastOrderShkId: 123456789 + lastOrderCreatedAt: '2024-08-12T10:20:48+03:00' + color: colorless + subjectId: 219 + subjectName: Футболки-поло + parentFeedbackId: null + childFeedbackId: bIjTCZDvJni7NGnLbUlf + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/supplier-valuations: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Get lists of reasons for complaints about the feedback and product issues + description: | + Returns lists of reasons for complaints and product issues + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + parameters: + - name: X-Locale + in: header + schema: + type: string + example: ru + description: Choose the language for the response fields values (`ru` - Russian, `en` - English, `zh` - Chinese) + responses: + '200': + description: Lists of reasons for complaints and product issues + content: + application/json: + schema: + type: object + properties: + data: + description: Data + type: object + properties: + feedbackValuations: + description: Reasons for complaints. Look Response samples + type: object + properties: + '1': + type: string + '2': + type: string + '3': + type: string + '4': + type: string + '5': + type: string + '6': + type: string + '7': + type: string + productValuations: + description: Product issues. Look Response samples + type: object + properties: + '1': + type: string + '2': + type: string + '3': + type: string + '4': + type: string + error: + type: boolean + description: Error presence + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: + data: + feedbackValuations: + '1': Отзыв не относится к товару + '2': Отзыв оставили конкуренты + '3': Спам + '4': Нецензурное содержимое в фото + '5': Нецензурная лексика + '6': Фото не имеет отношения к товару + '7': Отзыв с политическим контекстом + productValuations: + '1': Повредили при доставке + '2': Товар подменили + '3': Случайно отправил не тот товар и хочу его вернуть + '4': Товар вернули после эксплуатации + error: false + errorText: '' + additionalErrors: null + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks/actions: + servers: + - url: https://feedbacks-api.wildberries.ru + post: + tags: + - Feedbacks + security: + - HeaderApiKey: [] + summary: File a complaint about the feedback, report a product issue + description: | + Allows submitting a complaint about the feedback and/or reporting a product issue from the feedback. +
+ There is no validation by feedback ID: if an incorrect value is provided in the request, you will not receive an error. + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ requestBody: + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: string + description: Feedback ID + example: J2FMRjUj6hwvwCElqssz + supplierFeedbackValuation: + type: integer + description: Reason for feedback complaint
Can be obtained from the `feedbackValuations` field, a method for obtaining lists of product issues and reasons for complaint about the feedback. + example: 1 + supplierProductValuation: + type: integer + description: Description of the product problem
Can be obtained from the `productValuations` field, a method for obtaining lists of product issues and reasons for complaint about the feedback + example: 1 + responses: + '204': + description: Success + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks/answer: + servers: + - url: https://feedbacks-api.wildberries.ru + post: + tags: + - Feedbacks + security: + - HeaderApiKey: [] + summary: Reply to feedback + description: | + Allows you to respond to the feedback. +
+ There is no validation by feedback ID: if an incorrect value is provided in the request, you will not receive an error. + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ requestBody: + content: + application/json: + schema: + type: object + required: + - id + - text + properties: + id: + type: string + description: Feedback ID + example: J2FMRjUj6hwvwCElqssz + text: + type: string + description: Reply text + example: Спасибо за Ваш отзыв! + minimum: 2 + maximum: 5000 + responses: + '204': + description: Success + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + patch: + tags: + - Feedbacks + security: + - HeaderApiKey: [] + summary: Edit response to feedback + description: | + Allows you to edit an already sent response to the feedback. +
+ You can edit the response only once within 60 days. +
+ There is no validation by feedback ID: if an incorrect value is provided in the request, you will not receive an error. + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ requestBody: + content: + application/json: + schema: + type: object + required: + - id + - text + properties: + id: + type: string + description: Feedback ID + example: J2FMRjUj6hwvwCElqssz + text: + type: string + description: Reply text + example: Спасибо за Ваш отзыв, он очень важен для нас! + minimum: 2 + maximum: 5000 + responses: + '204': + description: Success + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks/order/return: + servers: + - url: https://feedbacks-api.wildberries.ru + post: + security: + - HeaderApiKey: [] + summary: Return product by feedback ID + description: | + The method allows requesting a return for a product for which a feedback has been left. +
Return is available for feedbacks with `"isAbleReturnProductOrders": true` + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + feedbackId: + type: string + description: Feedback ID + example: + feedbackId: absdfgerrrfff1234 + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + description: Error presence + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/ResponseDoNotGetFeedback400' + RequestBodyErr400: + $ref: '#/components/examples/RequestBodyErr400' + RequestIDErr400: + $ref: '#/components/examples/RequestIDErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Error processing request parameters + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + responseInaccessibleBackGoodError422: + $ref: '#/components/examples/responseInaccessibleBackGoodError422' + responseUnsuccessfullyBackGoodError422: + $ref: '#/components/examples/responseUnsuccessfullyBackGoodError422' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedback: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Get the feedback by ID + description: | + The method allows you to get a feedback by its ID + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + parameters: + - name: id + in: query + required: true + description: Feedback ID + schema: + type: string + example: G7Y9Y1kBAtKOitoBT_lV + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + id: + type: string + description: Feedback ID + userName: + type: string + description: Name of the feedback author + nullable: false + pros: + type: string + description: Product pros + nullable: false + cons: + type: string + description: Product cons + nullable: false + matchingSize: + type: string + description: | + Compliance of the declared size with the real one. +
Possible values: + - ` ` - for dimensionless goods + - `ок` - matches to the size + - `smaller` - size is smaller + - `bigger` - size is bigger + text: + type: string + description: Feedback text + productValuation: + type: integer + description: Product rate + createdDate: + type: string + format: date-time + description: Date and time the feedback was created + answer: + nullable: true + type: object + description: Reply structure + properties: + text: + type: string + description: Reply text + state: + type: string + description: | + Status: + - `none` - new + - `wbRu` - displayed on the site + - `reviewRequired` - response being reviewed + - `rejected` - response rejected + editable: + type: boolean + description: Whether the answer can be edited.
false - can't be, true - can be + state: + type: string + description: | + Feedback state: + - `none` - not processed (new) + - `wbRu` - processed + productDetails: + description: Product structure + type: object + properties: + nmId: + type: integer + description: WB article + imtId: + type: integer + description: Product card ID + productName: + type: string + description: Product name + supplierArticle: + type: string + nullable: true + description: Seller's article + supplierName: + type: string + nullable: true + description: Seller's name + brandName: + type: string + nullable: true + description: Brand name + size: + type: string + description: Product size (`techSize' in the product card) + photoLinks: + nullable: true + description: Array of structure of images + type: array + items: + type: object + properties: + fullSize: + type: string + description: Link of full-size images + miniSize: + type: string + description: Link of small-size images + video: + nullable: true + description: Video structure + type: object + properties: + previewImage: + type: string + description: Video preview image link + link: + type: string + description: Link to the playlist video file (available through hls protocol) + duration_sec: + type: integer + description: Video duration + wasViewed: + type: boolean + description: Presence of feedback viewed + isAbleSupplierFeedbackValuation: + description: Is the feedback rating available to the seller (`true` - available, `false` - not available) + type: boolean + supplierFeedbackValuation: + description: Feedback rating left by the seller + type: integer + isAbleSupplierProductValuation: + description: Is the product rating available to the seller (`true` - available, `false` - not available) + type: boolean + supplierProductValuation: + description: Product rating left by the seller + type: integer + isAbleReturnProductOrders: + description: Is the product return option available (false - no, true - yes) + type: boolean + returnProductOrdersDate: + description: Date and time when a response with status code 200 was received for the return request. + type: string + bables: + nullable: true + description: List of customer tags + type: array + items: + type: string + lastOrderShkId: + type: integer + description: Barcode of the product + lastOrderCreatedAt: + type: string + description: Date of purchase + color: + type: string + description: Product color + subjectId: + type: integer + description: Subject ID + subjectName: + type: string + description: Subject name + parentFeedbackId: + type: string + description: ID of the original feedback (`null` if this feedback is original) + nullable: true + childFeedbackId: + type: string + nullable: true + description: ID of the updated feedback (`null` if this feedback is updated) + error: + type: boolean + description: Error presence + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: + data: + id: YX52RZEBhH9mrcYdEJuD + text: Спасибо, всё подошло + pros: Удобный + cons: Нет + productValuation: 5 + createdDate: '2024-09-26T10:20:48+03:00' + answer: + text: Пожалуйста. Ждём вас снова! + state: wbRu + editable: false + state: wbRu + productDetails: + imtId: 123456789 + nmId: 987654321 + productName: ВАЗ + supplierArticle: DP02/черный + supplierName: ГП Реклама и услуги + brandName: Бест Трикотаж + size: '0' + video: + previewImage: https://videofeedback01.wbbasket.ru/8defc853-7f62-4d6d-b236-8a16cfb63128/preview.webp + link: https://videofeedback01.wbbasket.ru/8defc853-7f62-4d6d-b236-8a16cfb63128/index.m3u8 + durationSec: 10 + wasViewed: true + photoLinks: + - fullSize: https://feedback04.wbbasket.ru/vol1333/part133337/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1333/part133337/123456789/photos/ms.jpg + - fullSize: https://feedback04.wbbasket.ru/vol1508/part150887/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1508/part150887/123456789/photos/ms.jpg + - fullSize: https://feedback04.wbbasket.ru/vol1486/part148682/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1486/part148682/123456789/photos/ms.jpg + userName: Николай + matchingSize: ok + isAbleSupplierFeedbackValuation: false + supplierFeedbackValuation: 1 + isAbleSupplierProductValuation: false + supplierProductValuation: 2 + isAbleReturnProductOrders: false + returnProductOrdersDate: '2024-08-20T16:39:49Z' + bables: + - цена + lastOrderShkId: 123456789 + lastOrderCreatedAt: '2024-08-12T10:20:48+03:00' + color: colorless + subjectId: 219 + subjectName: Футболки-поло + parentFeedbackId: null + childFeedbackId: bIjTCZDvJni7NGnLbUlf + error: false + errorText: '' + additionalErrors: null + 'Response401': + $ref: '#/components/responses/Response401' + '422': + description: Error processing request parameters + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + ResponseGetFeedbackByIdErrEx: + $ref: '#/components/examples/ResponseGetFeedbackByIdErrEx' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/feedbacks/archive: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: List of archived feedbacks + description: | + The method allows you to get a list of archived feedbacks.
+ The feedback becomes archived if: + - A response to the feedback is received. + - No response to the feedback is received within 30 days. + - The feedback contains no text or photos. + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Feedbacks + parameters: + - name: nmId + in: query + description: WB article + schema: + type: integer + example: 14917842 + - name: take + in: query + required: true + description: Number of feedbacks (max. 5 000) + schema: + type: integer + example: 1 + - name: skip + in: query + required: true + description: Number of feedbacks for skip + schema: type: integer - name: - description: Название предмета + example: 0 + - name: order + in: query + description: Sorting of feedbacks by date (dateAsc/dateDesc) + schema: type: string - nmsCount: - description: Количество артикулов WB с этим предметом + enum: + - dateAsc + - dateDesc + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + feedbacks: + $ref: '#/components/schemas/responseFeedback' + error: + type: boolean + description: Error presence + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + example: + data: + feedbacks: + - id: YX52RZEBhH9mrcYdEJuD + text: Спасибо, всё подошло + pros: Удобный + cons: Нет + productValuation: 5 + createdDate: '2024-09-26T10:20:48+03:00' + answer: + text: Пожалуйста. Ждём вас снова! + state: wbRu + editable: false + state: wbRu + productDetails: + imtId: 123456789 + nmId: 987654321 + productName: ВАЗ + supplierArticle: DP02/черный + supplierName: ГП Реклама и услуги + brandName: Бест Трикотаж + size: '0' + video: + previewImage: https://videofeedback01.wbbasket.ru/8defc853-7f62-4d6d-b236-8a16cfb63128/preview.webp + link: https://videofeedback01.wbbasket.ru/8defc853-7f62-4d6d-b236-8a16cfb63128/index.m3u8 + durationSec: 10 + wasViewed: true + photoLinks: + - fullSize: https://feedback04.wbbasket.ru/vol1333/part133337/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1333/part133337/123456789/photos/ms.jpg + - fullSize: https://feedback04.wbbasket.ru/vol1508/part150887/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1508/part150887/123456789/photos/ms.jpg + - fullSize: https://feedback04.wbbasket.ru/vol1486/part148682/123456789/photos/fs.jpg + miniSize: https://feedback04.wbbasket.ru/vol1486/part148682/123456789/photos/ms.jpg + userName: Николай + matchingSize: ok + isAbleSupplierFeedbackValuation: false + supplierFeedbackValuation: 1 + isAbleSupplierProductValuation: false + supplierProductValuation: 2 + isAbleReturnProductOrders: false + returnProductOrdersDate: '2024-08-20T16:39:49Z' + bables: + - цена + lastOrderShkId: 123456789 + lastOrderCreatedAt: '2024-08-12T10:20:48+03:00' + color: colorless + subjectId: 219 + subjectName: Футболки-поло + parentFeedbackId: null + childFeedbackId: bIjTCZDvJni7NGnLbUlf + error: false + errorText: '' + additionalErrors: null + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr400: + $ref: '#/components/examples/FeedbackErr400' + 'Response401': + $ref: '#/components/responses/Response401' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/responsefeedbackErr' + examples: + FeedbackErr403: + $ref: '#/components/examples/FeedbackErr403' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/templates: + servers: + - url: https://feedbacks-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Get response templates + description: | + The method allows to get templates of responses to feedbacks/questions + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Response Templates + parameters: + - name: templateType + in: query + schema: type: integer - example: - - id: 342 - name: Обложки - nmsCount: 1 - - id: 106 - name: Тапочки - nmsCount: 2 - - id: 219 - name: Футболки-поло - nmsCount: 2 - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/search/supplier-products: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список товаров для кампании в поиске - description: | - Метод возвращает список товаров, которые есть в наличии. Эти товары можно добавить в кампанию. -
- Допускается 1 запрос в 12 секунд.
- Чтобы получить все товары, которые есть в наличии, необходимо отправить запрос без параметра subject. - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: subject - in: query - description: ID предмета - schema: - type: integer - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - type: object - properties: - nm: + example: 1 + description: | + `1` - templates for feedbacks
`2` - templates for questions + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Response200' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + Response200: + $ref: '#/components/examples/Response200' + IncorrectTemplateType: + $ref: '#/components/examples/IncorrectTemplateType' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + post: + security: + - HeaderApiKey: [] + summary: Create a template + description: | + The method allows to create a response template for feedback/question.
+ A total of 20 templates can be created, 10 for feedback and 10 for questions.
+ Any characters are acceptable + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Response Templates + requestBody: + content: + application/json: + schema: + type: object + required: + - name + - templateType + - text + properties: + name: + type: string + description: Template name (1 to 100 characters) + templateType: + type: integer + description: | + Templates type
`1` - templates for feedback
`2` - templates for questions + text: + type: string + description: Template text (from 2 to 1000 characters) + example: + name: name + templateType: 1 + text: text + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PostTemplateOK' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + PostTemplateOK: + $ref: '#/components/examples/PostTemplateOK' + TemplateLimitExceeded: + $ref: '#/components/examples/TemplateLimitExceeded' + InvalidTemplateNameLen: + $ref: '#/components/examples/InvalidTemplateNameLen' + InvalidCommentLenTemplate: + $ref: '#/components/examples/InvalidCommentLenTemplate' + InvalidRequest: + $ref: '#/components/examples/InvalidRequest' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + patch: + security: + - HeaderApiKey: [] + summary: Edit template + description: | + The method allows to edit the template.
Any characters are acceptable. + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Response Templates + requestBody: + content: + application/json: + schema: + type: object + required: + - name + - templateID + - text + properties: + name: + type: string + description: Template name (1 to 100 characters) + templateID: + type: string + description: Template ID + text: + type: string + description: Template text (from 2 to 1000 characters) + example: + name: newname + templateID: 1234fhbf34ew2 + text: newtext + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PatchDelRespOK' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + PatchDelRespOK: + $ref: '#/components/examples/PatchDelRespOK' + EditTemplateError: + $ref: '#/components/examples/EditTemplateError' + InvalidRequest: + $ref: '#/components/examples/InvalidRequest' + InvalidTemplateNameLen: + $ref: '#/components/examples/InvalidTemplateNameLen' + InvalidCommentLenTemplate: + $ref: '#/components/examples/InvalidCommentLenTemplate' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + delete: + security: + - HeaderApiKey: [] + summary: Delete the template + description: | + The method allows to delete the template + +
+ Request limit per one seller's account for all methods in the Feedbacks and Questions category: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 second | 3 requests | 333 milliseconds | 6 requests | + +
+ tags: + - Response Templates + requestBody: + content: + application/json: + schema: + type: object + required: + - templateID + properties: + templateID: + type: string + description: Template ID (max. 1) + example: + templateID: 1234fhbf34ew2 + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PatchDelRespOK' + - $ref: '#/components/schemas/ResponseErrorTemplate' + examples: + PatchDelRespOK: + $ref: '#/components/examples/PatchDelRespOK' + InvalidRequest: + $ref: '#/components/examples/InvalidRequest' + ErrorDeleteBD: + $ref: '#/components/examples/ErrorDeleteBD' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/seller/chats: + servers: + - url: https://buyer-chat-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + summary: Chat list + description: | + Returns a list of all seller's chats. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 10 seconds | 10 requests | 1 second | 10 requests | +
+ tags: + - Buyers Chat + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ChatsResponse' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/seller/events: + get: + servers: + - url: https://buyer-chat-api.wildberries.ru + security: + - HeaderApiKey: [] + summary: Chat events + description: | + Returns an event list for all chats. + + To retrieve all events: + 1. Make the first request without a `next` parameter. + 2. Repeat the request with the `next` parameter value from the previous response until `totalEvents` becomes `0`. This will indicate that you have received all events. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 10 seconds | 10 requests | 1 second | 10 requests | +
+ tags: + - Buyers Chat + parameters: + - name: next + in: query + description: | + Paginator. Retrieve the next data packet starting from this moment.
Format: Unix timestamp **with milliseconds** + schema: type: integer - description: Артикул WB. - name: - description: Наименование товара. - subject: - type: object - description: Данные предмета. - properties: - id: - type: integer - description: ID предмета. - name: - type: string - description: Название предмета. - brand: + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/EventsResponse' + example: + result: + next: 1698045576000 + newestEventTime: '2023-10-23T07:19:36Z' + oldestEventTime: '2023-10-23T05:02:20Z' + totalEvents: 4 + events: + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: 55adee45-11f0-33b6-a847-6ccc7c78b2ec + eventType: message + isNewChat: true + message: + attachments: + goodCard: + date: '2023-10-18T11:46:01.528526Z' + needRefund: false + nmID: 12345678 + price: 500 + priceCurrency: RUB + rid: 2fb52cd9e25e52538a5f05994e688ae5 + size: '0' + statusID: 11 + files: + - contentType: application/pdf + date: '2023-10-23T08:02:19.594Z' + downloadID: ecaeb056-a4ee-45b4-ae45-666811755d38 + name: Чек.pdf + url: https://chat-basket-01.wbbasket.ru/vol0/part3265/fb25c9e9-cae8-52db-b68e-736c1896a3f5/pdf/0380e781-281e-41b5-8ae1-ce281f15a4a7.pdf + size: 1046143 + images: + - date: '2023-10-23T08:02:20.717Z' + downloadID: fd6be4e3-5447-41d7-a1e6-b2d3e06c3b05 + url: https://chat-basket-01.wbbasket.ru/vol0/part2345/fb89c9e9-cae8-52db-b68e-736c1466a3f5/jpg/0823ff24-821e-40e9-8cdf-0a2b5fd86a32.jpg + text: Здравствуйте! У меня вопрос по товару "Альбом, бренд Эконом, артикул 13480414, товар получен 18.10.2023" + source: rusite + addTimestamp: 1698037340000 + addTime: '2023-10-23T05:02:20Z' + replySign: 1:1e265a58-a120-b178-008c-60af2460207c:66f136e919a8207e136757754f253189bfb9ae1ad9da9170c9d5c478626663908888c370216525bef51c0ca8d77952e05c9c17f9b63ab00374c5555b42efc07d + sender: client + clientID: '186132' + clientName: Алёна + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: cef95d3c-0345-4dc9-b6df-4c8c57a176a9 + eventType: message + message: + text: Здравствуйте! Пришёл не тот цвет. Можно вернуть и заказать другой товар? + source: rusite + addTimestamp: 1698037387000 + addTime: '2023-10-23T05:03:07Z' + sender: client + clientID: '186132' + clientName: Алёна + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: fd22e5bf-64fd-43f7-b3a0-ad29uu027f97 + eventType: message + message: + text: Здравствуйте. Да, сейчас оформим возврат. + source: seller-public-api + addTimestamp: 1698038124000 + addTime: '2023-10-23T05:15:24Z' + sender: seller + - chatID: 1:1e265a58-a120-b178-008c-60af2460207c + eventID: cef95d3c-0345-4dc9-b6df-4c8c75a176a7 + eventType: message + refund: + actionType: sellerRequestRefund + price: 500 + priceCurrency: RUB + rid: 2fb52cd9e25e52538a5f05994e688ae5 + addTimestamp: 1698045576000 + addTime: '2023-10-23T07:19:36Z' + sender: seller + errors: null + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + status: + type: number + description: HTTP status code + title: + type: string + description: Error title + origin: + type: string + description: WB internal service ID + detail: + type: string + description: Error details + requestId: + type: string + description: Unique request ID + error: + type: string + description: Error text + examples: + IncorrectNextParameter: + description: The type of the value or its magnitude is incorrect + value: + status: 400 + title: Bad Request + origin: proxy-chats + detail: Invalid number + requestId: 62f59a4ce21064f20b1bbc28c85f38d8 + error: Invalid number + IncorrectNextParameter1: + description: Invalid value 0 + value: + status: 400 + title: Bad Request + origin: proxy-chats + detail: Invalid value for "next" + requestId: 62f59a4ce21064f20b1bbc28c85f38d8 + error: Invalid value for "next" + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/seller/message: + post: + servers: + - url: https://buyer-chat-api.wildberries.ru + security: + - HeaderApiKey: [] + summary: Send message + description: | + Sends message to the buyer. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 10 seconds | 10 requests | 1 second | 10 requests | +
+ tags: + - Buyers Chat + requestBody: + content: + multipart/form-data: + schema: + required: + - replySign + type: object + properties: + replySign: + maxLength: 255 + type: string + description: | + Chat signature. Can be obtained from [chat information](./user-communication#tag/Buyers-Chat/paths/~1api~1v1~1seller~1chats/get) or [event data](./user-communication#tag/Buyers-Chat/paths/~1api~1v1~1seller~1events/get) if the event contains the `"isNewChat": true` field. + message: + maxLength: 1000 + type: string + description: Message text. Maximum of 1000 symbols. + file: + type: array + description: | + Files, in JPEG, PDF, or PNG format, maximum size — 5 MB each. Maximum of total file size — 30 MB. + items: + type: string + format: binary + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + result: + addTime: 1712848270018 + chatID: 1:641b623c-5c0e-295b-db03-3d5b4d484c32 + errors: [] + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + status: + type: number + description: HTTP status code + title: + type: string + description: Error title + origin: + type: string + description: WB internal service ID + detail: + type: string + description: Error details + requestId: + type: string + description: Unique request ID + error: + type: string + description: Error text + examples: + InvalidSignature: + description: Invalid signature + value: + status: 400 + title: Bad Request + origin: proxy-chats + detail: Invalid signature + requestId: 1b21cad4833a0c9244dc294a000f6149 + error: Invalid signature + InvalidFileSize: + description: File attachment size is too big + value: + status: 400 + title: Bad Request + origin: proxy-chats + detail: 'A24FA09844E: attachment too big. Max size: 5MiB' + requestId: 1b21cad4833a0c9244dc294a000f6149 + error: 'A24FA09844E: attachment too big. Max size: 5MiB' + UnsupportedFilesType: + description: Unsupported file type + value: + status: 400 + title: Bad Request + origin: proxy-chats + detail: '4A9F2544E29: "video_2023-07-25_10-54-09.mp4" has unsupported mime type' + requestId: 1b21cad4833a0c9244dc294a000f6149 + error: '4A9F2544E29: "video_2023-07-25_10-54-09.mp4" has unsupported mime type' + InvalidMessage: + description: Invalid value for the message parameter + value: + status: 400 + title: Bad Request + origin: proxy-chats + detail: Invalid value for "message" + requestId: 1b21cad4833a0c9244dc294a000f6149 + error: Invalid value for "message" + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/seller/download/{id}: + get: + servers: + - url: https://buyer-chat-api.wildberries.ru + security: + - HeaderApiKey: [] + tags: + - Buyers Chat + summary: Get file from the message + description: | + The method provides a file or image from the message by its ID. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 10 seconds | 10 requests | 1 second | 10 requests | +
+ parameters: + - name: id + in: path + description: File ID from the `downloadID` field in the [chat events](./user-communication#tag/Buyers-Chat/paths/~1api~1v1~1seller~1events/get) method + required: true + schema: type: string - description: Бренд. - kind: - type: object - description: Данные пола. - properties: - id: - type: integer - description: ID пола. - name: - type: string - description: Название пола. - example: - - nm: 1234567 - name: Обложка на студенческий - subject: - id: 342 - name: Обложки - brand: Бренд - kind: - id: 2 - name: Для женщин - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - InvalidSubjectForm: - $ref: '#/components/examples/InvalidSubjectForm' - CouldNotGetDataForSearchBar: - $ref: '#/components/examples/CouldNotGetDataForSearchBar' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v0/active: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Изменение активности предметной группы - description: "Изменяет активность предметной группы. Только для кампаний:\n * в\_поиске и поиск\_+ каталог;\n * со\_статусами Идут показы\_(`9`) и Кампания на\_паузе\_(`11`).\nМаксимум 5 запросов в секунду.\n" - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234 - required: true - - name: subjectId - in: query - description: Идентификатор предметной группы, для которой меняется активность - schema: - type: integer - example: 1234 - required: true - - name: status - in: query - description: Новое состояние (`true` - сделать группу активной или `false` - сделать группу неактивной) - schema: - type: string - example: 'true' - required: true - responses: - '200': - description: Статус изменен - '400': - description: Статус не изменен - content: - application/json: - schema: - type: string - examples: - IncorrectActiveAdv: - $ref: '#/components/examples/IncorrectActiveAdv' - IncorrectStatusAdv: - $ref: '#/components/examples/IncorrectStatusAdv' - InvalidRcIdAdv: - $ref: '#/components/examples/InvalidRcIdAdv' - IncorrectSubjectID: - $ref: '#/components/examples/IncorrectSubjectID' - IncorrectSupplierIdAdv: - $ref: '#/components/examples/IncorrectSupplierIdAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '422': - description: Размер ставки не изменен - content: - application/json: - schema: - type: string - examples: - ActivitySubjectGroupNotChanged: - $ref: '#/components/examples/ActivitySubjectGroupNotChanged' - /adv/v1/search/set-plus: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Управление активностью фиксированных фраз - description: "Изменяет активность фиксированных фраз. Только для кампаний в\_поиске и поиск\_+ каталог.\n\nМаксимум 1 запрос в 500 миллисекунд.\n" - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - - name: fixed - in: query - description: Новое состояние (`false` - сделать неактивными, `true` - сделать активными) - schema: - type: boolean - responses: - '200': - description: Активность изменена - '400': - description: Активность фиксированных фраз не изменена - content: - application/json: - schema: - type: string - example: Некорректный запрос - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - post: - security: - - HeaderApiKey: [] - summary: Установка/удаление фиксированных фраз - description: "Устанавливает и удаляет фиксированные фразы. Только для кампаний в\_поиске и поиск\_+ каталог.\n\nОтправка пустого массива удаляет все фиксированные фразы и отключает активность фиксированных фраз в кампании.\nМаксимум 1 запрос в 500 миллисекунд.\n" - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - pluse: - description: Список фиксированных фраз (max. 100) - type: array - items: - type: string - example: - pluse: - - Фраза 1 - - Фраза 2 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: array - items: - type: string - example: - - Фраза 1 - - Фраза 2 - '400': - description: Некорректный запрос - content: - application/json: - schema: - type: string - example: 'json: cannot unmarshal number into Go struct field request.pluse of type string' - /adv/v1/search/set-phrase: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Установка/удаление минус-фраз фразового соответствия - description: "Устанавливает и удаляет минус-фразы фразового соответствия. Только для кампаний в\_поиске и поиск\_+ каталог.
\nМаксимально допустимое количество минус-фраз в кампании - 1000 шт.
\nОтправка пустого массива удаляет все минус-фразы фразового соответствия из кампании.\n\nМаксимум 2 запроса в секунду.\n" - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - phrase: - description: Минус-фразы (макс. 1000 шт.) - type: array - items: - type: string - example: - phrase: - - сло - - гу - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - example: Некорректный запрос - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/search/set-strong: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Установка/удаление минус-фраз точного соответствия - description: "Устанавливает и удаляет минус-фразы точного соответствия. Только для кампаний в\_поиске и поиск\_+ каталог.
\nМаксимально допустимое количество минус-фраз в кампании - 1000 шт.
\nОтправка пустого массива удаляет все минус-фразы точного соответствия из кампании.\n\nМаксимум 2 запроса в секунду.\n" - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - strong: - description: Минус-фразы (макс. 1000 шт.) - type: array - items: - type: string - example: - strong: - - стоять - - лопата - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - example: Некорректный запрос - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/search/set-excluded: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Установка/удаление минус-фраз из поиска - description: "Устанавливает и удаляет минус-фразы из поиска. Только для кампаний в\_поиске и поиск\_+ каталог.
\nМаксимально допустимое количество минус-фраз в кампании - 1000 шт.
\nОтправка пустого массива удаляет все минус-фразы из поиска из кампании.\n\nМаксимум 2 запроса в секунду. \n" - tags: - - "Управление параметрами кампании в поиске и\_поиск\_+ каталог" - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - excluded: - description: Минус-фразы (макс. 1000 шт.) - type: array - items: - type: string - example: - excluded: - - что-то синее - - картошечка - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - example: Некорректный запрос - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - /adv/v1/auto/getnmtoadd: - servers: - - url: https://advert-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список номенклатур для автоматической кампании - description: | - Метод позволяет получать список номенклатур, доступных для добавления в кампанию.
- Допускается 1 запрос в секунду. - tags: - - Управление параметрами автоматических кампаний - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - responses: - '200': - description: Список доступных номенклатур - content: - application/json: - schema: - type: array - items: - type: integer - example: - - 1111111111 - - 2222222222 - - 3333333333 - - 4444444444 - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/auto/updatenm: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Изменение списка номенклатур в автоматической кампании - description: | - Метод позволяет добавлять и удалять номенклатуры.
- Допускается 1 запрос в секунду.
- `Важно`: Добавить можно только те номенклатуры, которые вернутся в ответе метода "Список номенклатур для автоматической кампании".
- Удалить единственную номенклатуру из кампании нельзя.
- Проверки по параметру delete не предусмотрено.
- Если пришел ответ со статус-кодом 200, а изменений не произошло, то проверьте запрос на соответствие документации. - tags: - - Управление параметрами автоматических кампаний - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - add: - description: Номенклатуры, которые необходимо добавить. - type: array - items: - type: integer - delete: - description: Номенклатуры, которые необходимо удалить. - type: array - items: - type: integer - example: - add: - - 11111111 - - 44444444 - delete: - - 55555555 - responses: - '200': - description: Успешно - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvError1' - examples: - CampaignNotFoundAdv: - $ref: '#/components/examples/CampaignNotFoundAdv' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/auto/active: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Управление зонами показов в автоматической кампании - description: | - Метод позволяет изменять активность зон показов.
- Допускается 1 запрос в секунду.
- Вы можете осуществлять показы товаров во всех зонах либо выборочно. - tags: - - Управление параметрами автоматических кампаний - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - recom: - description: Рекомендации на главной (`false` - отключены, `true` - включены) - type: boolean - booster: - description: Поиск/Каталог (`false` - отключены, `true` - включены) - type: boolean - carousel: - description: Карточка товара (`false` - отключены, `true` - включены) - type: boolean - responses: - '200': - description: Успешно - '400': - description: '' - content: - application/json: - schema: - type: string - examples: - FailedGetAdvertTools: - $ref: '#/components/examples/FailedGetAdvertTools' - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /adv/v1/auto/set-excluded: - servers: - - url: https://advert-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Установка/удаление минус-фраз для автоматической кампании - description: | - Метод позволяет устанавливать или удалять минус фразы.
-
Допускается 1 запрос в 6 секунд. -
Отправка пустого массива удаляет все минус-фразы из кампании.
- tags: - - Управление параметрами автоматических кампаний - parameters: - - name: id - in: query - description: Идентификатор кампании - schema: - type: integer - example: 1234567 - required: true - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - excluded: - description: Список фраз (макс. 1000 шт.) - type: array - items: + responses: + '200': + description: Success + content: + application/pdf: + schema: + type: string + format: binary + image/jpeg: + schema: + type: string + format: binary + image/png: + schema: + type: string + format: binary + '400': + description: Bad request + content: + application/json: + schema: + type: object + properties: + status: + type: number + description: HTTP status code + title: + type: string + description: Error title + origin: + type: string + description: WB internal service ID + detail: + type: string + description: Error details + requestId: + type: string + description: Unique request ID + error: + type: string + description: Error text + examples: + IncorrectNextParameter: + description: Invalid file ID + value: + status: 400 + title: invalid fileID + origin: proxy-chats + detail: invalid fileID + requestId: 62f59a4ce21064f20b1bbc28c85f38d8 + error: invalid fileID + /api/v1/claims: + servers: + - url: https://returns-api.wildberries.ru + get: + security: + - HeaderApiKey: [] + tags: + - Buyers Returns + summary: Buyers return applications + description: | + Returns buyers applications for product returns for the current 14 days. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 20 requests | 3 seconds | 10 requests | +
+ parameters: + - $ref: '#/components/parameters/is_archive' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/nm_id' + responses: + '200': + $ref: '#/components/responses/GetClaimsSuccessResponse' + '400': + $ref: '#/components/responses/Error400GetClaims' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' + /api/v1/claim: + servers: + - url: https://returns-api.wildberries.ru + patch: + security: + - HeaderApiKey: [] + tags: + - Buyers Returns + summary: Answer buyers application + description: | + Sends an answer to the buyers application for product return. + +
+ Request limit per one seller's account: + + | Period | Limit | Interval | Burst | + | --- | --- | --- | --- | + | 1 minute | 20 requests | 3 seconds | 10 requests | +
+ requestBody: + $ref: '#/components/requestBodies/PatchClaimReq' + responses: + '200': + description: Success + '400': + $ref: '#/components/responses/Error400PatchClaim' + 'Response401': + $ref: '#/components/responses/Response401' + 'Response429': + $ref: '#/components/responses/Response429' +components: + schemas: + responseCardCreate: + type: object + properties: + data: + type: object + nullable: true + example: null + error: + description: Error flag + type: boolean + errorText: + description: Error description type: string - examples: - SettingMinusPhrase: - $ref: '#/components/examples/SettingMinusPhrase' - RemovingMinusPhrase: - $ref: '#/components/examples/RemovingMinusPhrase' - responses: - '200': - description: '' - '400': - description: '' - content: - application/json: - schema: - type: string - example: Некорректный запрос - '401': - description: Не авторизован - content: - application/json: - schema: - $ref: '#/components/schemas/responseAdvert401' - examples: - EmptyToken: - $ref: '#/components/examples/EmptyToken' - InvalidToken: - $ref: '#/components/examples/InvalidToken' - TokenScopeNotAllowedAdv: - $ref: '#/components/examples/TokenScopeNotAllowedAdv' - '429': - description: Превышен лимит по запросам - content: - application/json: - schema: - $ref: '#/components/schemas/Response429' - /api/v1/ins: - servers: - - url: https://recommend-api.wildberries.ru - - url: https://recommend-api.wb.ru - post: - tags: - - Рекомендации - summary: Добавление рекомендаций - description: | - Метод позволяет добавить рекомендации к товару.
`ВАЖНО!` Если запрос прошел успешно (код ответа 200), а рекомендации не добавилась, то вам необходимо проверить корректность отправленных значений.
На данный момент в методе не предусмотрена валидация значений параметров.
Тщательно проверяйте данные перед отправкой.
Ограничение по запросам: 120 запросов в минуту.

`ВАЖНО!` Если вы получили ответ с кодом 200 и телом вида CrutchSapi1356-65c49a25-7f9798142620 OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. - requestBody: - required: true - content: - application/json: - schema: - type: array - description: список nm товаров и рекомендаций к ним - items: - properties: - nm: - description: Идентификатор товара (`nmId`), к которому добавляется рекомендация - type: integer - recom: - description: Список идентификаторов товаров (`nmId`), которые необходимо добавить в рекомендуемые - type: array - items: - type: integer - minimum: 1 - example: - nm: 1376382 - recom: - - 123456342 - - 789101112 - - 9877654321 - required: - - nm - - recom - responses: - '200': - description: Рекомендации успешно добавлены - '400': - description: Неверный синтаксис запроса - content: - application/json: - schema: - type: string - example: can't parse data from request - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - type: string - /api/v1/del: - servers: - - url: https://recommend-api.wildberries.ru - - url: https://recommend-api.wb.ru - post: - tags: - - Рекомендации - summary: Удаление рекомендаций - description: | - Метод позволяет удалить рекомендации.
`ВАЖНО!` Если запрос прошел успешно (код ответа 200), а рекомендации не удалились, то вам необходимо проверить корректность отправленных значений. На данный момент в методе не предусмотрена валидация значений параметров. Тщательно проверяйте данные перед отправкой.

`ВАЖНО`: Если вы получили ответ с кодом 200 и телом вида CrutchSapi1356-65c49a25-7f9798142620 OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. - requestBody: - required: true - content: - application/json: - schema: - type: array - description: список nm товаров и рекомендаций к ним - items: - type: object - properties: - nm: - description: Идентификатор товара (`nmId`), у которого необходимо удалить рекомендацию + additionalErrors: + description: Any additional errors + oneOf: + - type: object + nullable: true + properties: + string: + type: string + additionalProperties: false + - type: string + nullable: true + - type: object + properties: + error: + type: string + required: + - error + requestMoveNmsImtConn: + type: object + required: + - targetIMT + - nmIDs + properties: + targetIMT: + description: Seller's existing `imtID`, in which product cards have to be merged type: integer - recom: - description: Список идентификаторов товаров (`nmId`), которые необходимо удалить из рекомендуемых + example: 123 + nmIDs: + description: | + `nmID` to be merged, maximum 30 type: array items: - type: integer - minimum: 1 - example: - nm: 1376382 - recom: - - 123456342 - - 789101112 - - 9877654321 - required: - - nm - - recom - responses: - '200': - description: ОК - '400': - description: Неверный синтаксис запроса - content: - application/json: - schema: - type: string - example: can't parse data from request - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - type: string - /api/v1/set: - servers: - - url: https://recommend-api.wildberries.ru - - url: https://recommend-api.wb.ru - post: - tags: - - Рекомендации - summary: Управление рекомендациями - description: | - Метод позволяет добавлять, удалять рекомендации.
Работает по принципу перезаписи, все что указано в recom, ставится взамен того, что было ранее.
Чтобы удалить рекомендации необходимо передать пустой массив recom.

`ВАЖНО`: Если вы получили ответ с кодом 200 и телом вида CrutchSapi1356-65c49a25-7f9798142620 OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. - requestBody: - required: true - content: - application/json: - schema: - type: array - description: список nm товаров и рекомендаций к ним - items: - properties: - nm: - description: Артикул WB (`nmId`), которому передается рекомендация - type: integer - recom: - description: Список артикулов WB (`nmId`), которые необходимо передать в рекомендуемые. + type: integer + example: + - 837459235 + - 828572090 + requestMoveNmsImtDisconn: + type: object + required: + - nmIDs + properties: + nmIDs: + description: | + `nmID` to be separated, maximum 30 type: array items: - type: integer - minimum: 1 - example: - nm: 1376382 - recom: - - 123456342 - - 789101112 - - 9877654321 - required: - - nm - - recom - responses: - '200': - description: Успешно - '400': - description: Неверный синтаксис запроса - content: - application/json: - schema: - type: string - example: can't parse data from request - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '500': - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - type: string - /api/v1/list: - servers: - - url: https://recommend-api.wildberries.ru - - url: https://recommend-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Список рекомендаций - description: | - Метод позволяет получить список рекомендаций по нескольким товарам.

`ВАЖНО`: Если вы получили ошибку с кодом 200 и сообщением вида CrutchSapi1356-65c49a25-7f9798142620-UKfmVPyPcik6d OK, значит минимум одна из переданных номенклатур не принадлежит вам, либо не существует. - tags: - - Рекомендации - parameters: - - name: limit - in: header - schema: - type: integer - example: 123 - description: Ограничение количества рекомендаций в ответе. - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: integer - description: Массив с артикулами WB. + type: integer + example: + - 837459235 + - 828572090 + additionalProperties: false + responseIncorrectDate: + type: object + properties: + error: + type: string + additionalProperties: false + responseBodyContentError400: + type: object + properties: + data: + type: object + nullable: true + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + nullable: true + description: Additional errors + type: object + properties: + MoveNmsToTrash: + type: string example: - - 111111111 - - 222222222 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - nm: - description: Артикул WB, по которому запрошены рекомендации. - type: integer - list: - description: Список рекомендаций - type: array - items: - type: integer - example: + data: null + error: true + errorText: Error text + additionalErrors: + MoveNmsToTrash: Bad request + responseBodyContentError403: + type: object + properties: data: - - nm: 111111111 - list: - - 333333333 - - 444444444 - - 555555555 - - nm: 222222222 - list: - - 777777777 - - 666666666 - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /api/v1/questions/count-unanswered: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Неотвеченные вопросы - description: Метод позволяет получить количество неотвеченных вопросов за сегодня и за всё время. - tags: - - Вопросы - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + type: object + nullable: true + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + nullable: true + description: Additional errors + type: string + example: + data: null + error: true + errorText: Access denied + additionalErrors: Access denied + responseContentError4: + type: object + properties: + data: + type: object + nullable: true + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + description: Additional errors + nullable: true type: object properties: - countUnanswered: - type: integer - description: Количество неотвеченных вопросов - example: 24 - countUnansweredToday: - type: integer - description: Количество неотвеченных вопросов за сегодня - example: 0 - error: + description: + type: string + responseContentError5: + type: object + properties: + data: + type: object + nullable: true + error: + description: Error flag type: boolean - description: Есть ли ошибка - example: false - errorText: + errorText: + description: Error description type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки + additionalErrors: nullable: true - type: array - items: - type: string - example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /api/v1/new-feedbacks-questions: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Непросмотренные отзывы и вопросы - description: Метод отображает информацию о наличии у продавца непросмотренных отзывов и вопросов. - tags: - - Вопросы - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + description: Additional errors type: object properties: - hasNewQuestions: - type: boolean - description: Есть ли непросмотренные вопросы (`true` есть, `false` нет) - example: true - hasNewFeedbacks: - type: boolean - description: Есть ли непросмотренные отзывы (`true` есть, `false` нет) - example: false - error: + tagID: + type: string + responseContentError6: + type: object + properties: + data: + type: object + nullable: true + error: + description: Error flag type: boolean - description: Есть ли ошибка - example: false - errorText: + errorText: + description: Error description + type: string + additionalErrors: + description: Additional errors type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки nullable: true - type: array - items: - type: string - example: null - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/questions/products/rating: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Часто спрашиваемые товары - description: Метод позволяет получить товары, про которые чаще всего спрашивают. - tags: - - Вопросы - parameters: - - name: size - in: query - description: Количество запрашиваемых товаров (max. 100) - schema: - type: integer - example: 1 - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: + example: + data: null + error: false + errorText: '' + additionalErrors: null + mediaErrors: + type: object + properties: + additionalErrors: + description: Additional errors + nullable: true + type: object + data: + type: object + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + example: + additionalErrors: null + data: null + error: true + errorText: Error text + ResponseError: + type: object + properties: + data: + type: object + nullable: true + error: + type: boolean + errorText: + type: string + RequestAlreadyExistsError: + type: object + properties: + data: + type: object + properties: + id: + description: Upload ID + type: integer + alreadyExists: + description: "Upload duplication: `true`\_— upload already exists\n" + type: boolean + error: + description: Error flag + type: boolean + errorText: + description: Error text + type: string + StocksWarehouseError: + type: array + items: type: object properties: - data: + code: + description: Error code + type: string + data: + description: Additional data enriching the error + nullable: true + type: object + message: + description: Error description + type: string + TaskCreated: + type: object + properties: + data: type: object properties: - products: - description: Массив структур товаров - type: array - items: - type: object - properties: - nmId: - type: integer - description: Артикул WB - example: 21573649 - imtId: - type: integer - description: Идентификатор карточки товара - example: 15384080 - productName: - type: string - description: Название товара - example: Чехол для телефона iPhone 11 - brandName: - type: string - description: Бренд товара - example: Case - questionsCount: - type: string - description: Количество вопросов - example: 11 - error: + id: + type: integer + description: Upload ID + alreadyExists: + type: boolean + description: "Upload duplication: `true`\_— upload already exists\n" + example: false + error: + description: Error flag type: boolean - description: Есть ли ошибка example: false - errorText: + errorText: + description: Error text type: string - description: Описание ошибки example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true + Goods: + type: array + description: "Products, prices and discounts. Maximum 1,000\_products. Both price and discount can not be empty\n

\nIf the new price with discount is at least 3 times less than the previous one, the price will go [into price quarantine](https://seller.wildberries.ru/discount-and-prices/quarantine) and will not change. You will get the error in the response of upload states methods.\n

\nYou can edit price/discount using API or remove the price out of quarantine [in\_your account](https://seller.wildberries.ru/discount-and-prices/quarantine)\n" + items: + $ref: '#/components/schemas/Good' + Good: + type: object + required: + - nmID + properties: + nmID: + type: integer + example: 123 + description: WB article + price: + type: integer + example: 999 + description: | + Price. You can get the currency with [Get products](./work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1list~1goods~1filter/get) + method, field `currencyIsoCode4217` + discount: + type: integer + example: 30 + description: "Discount,\_%" + SizeGoodsBody: + description: "Sizes and prices. Maximum 1,000 sizes\n

\nIf the new price with discount is at least 3 times less than the previous one, the price will go [into price quarantine](https://seller.wildberries.ru/discount-and-prices/quarantine) and will not change. You will get the error in the response of [Upload states](./work-with-products#tag/Prices-and-Discounts) methods.\n

\nYou can edit price/discount using API or remove the price out of quarantine [in\_your account](https://seller.wildberries.ru/discount-and-prices/quarantine)\n" + type: array + items: + $ref: '#/components/schemas/SizeGoodReq' + SizeGoodReq: + type: object + required: + - nmID + - sizeID + - price + properties: + nmID: + type: integer + example: 123 + description: WB article + sizeID: + type: integer + example: 98989887 + description: Size ID. You can get the ID with [Get products](./work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1list~1goods~1filter/get) method, field `sizeID`. In content methods this is `chrtID` field + price: + type: integer + example: 999 + description: Price. You can get the currency with [Get products](./work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1list~1goods~1filter/get) method, field `currencyIsoCode4217` + ClubDisc: + type: array + description: "Products and WB Club discounts. Maximum 1,000\_products.\n" + items: + $ref: '#/components/schemas/ClubDiscReq' + ClubDiscReq: + type: object + required: + - nmID + - clubDiscount + properties: + nmID: + type: integer + example: 123 + description: WB article + clubDiscount: + type: integer + example: 5 + description: "WB Club discount,\_%" + GoodsList: + type: object + description: Product sizes + properties: + nmID: + type: integer + description: WB article + example: 98486 + vendorCode: + type: string + description: Seller's article + example: '07326060' + sizes: type: array + description: Size items: - type: string + type: object + properties: + sizeID: + type: integer + description: Size ID. In content methods this is `chrtID` field + format: int64 + example: 3123515574 + price: + type: integer + description: Price + example: 500 + discountedPrice: + type: number + description: Price with discount + example: 350 + clubDiscountedPrice: + type: number + description: Price with discount including WB Club discount + example: 332.5 + techSizeName: + description: Product size + type: string + example: '42' + currencyIsoCode4217: + type: string + description: Currency, according to ISO 4217 + example: RUB + discount: + type: integer + description: "Discount,\_%" + example: 30 + clubDiscount: + type: integer + example: 5 + description: "WB Club discount,\_%" + editableSizePrice: + description: "Setting of size prices: `true`\_— available, `false`\_— unavailable. Depends on product category\n" + type: boolean + example: true + SizeGood: + type: object + description: Size information + properties: + nmID: + type: integer + example: 123 + description: WB article + sizeID: + description: Size ID. You can get this ID with [Get products](./work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1list~1goods~1filter/get) method, field `sizeID`. In content methods this is `chrtID` field + type: integer + example: 98989887 + vendorCode: + type: string + example: '34552332' + description: Seller's article + price: + type: integer + example: 1000 + description: Price + currencyIsoCode4217: + type: string + description: Currency, according to ISO 4217 + example: RUB + discountedPrice: + type: number + example: 700 + description: Price with discount + clubDiscountedPrice: + type: number + description: Price with discount including WB Club discount + example: 665 + discount: + description: "Discount,\_%" + type: integer + example: 30 + clubDiscount: + type: integer + example: 5 + description: "WB Club discount,\_%" + techSizeName: + description: Size + type: string + example: '42' + editableSizePrice: + description: "Setting of size prices: `true`\_— available, `false`\_— unavailable. Depends on product category\n" + type: boolean + example: true + GoodBufferHistory: + type: object + properties: + nmID: + type: integer + example: 544833232 + description: WB article + vendorCode: + type: string + example: '34552332' + description: Seller's article + sizeID: + type: integer + example: 54483342 + description: Size ID. In content methods this is `chrtID` field + techSizeName: + type: string + example: XXL + description: Size + price: + type: integer + example: 1500 + description: Price + currencyIsoCode4217: + type: string + example: RUB + description: Currency, according to ISO 4217 + discount: + type: integer + example: 25 + description: "Discount,\_%" + clubDiscount: + type: integer + example: 5 + description: "WB Club discount,\_%" + status: + $ref: '#/components/schemas/GoodStatusBuffer' + errorText: + type: string example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/questions: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список вопросов - description: | - Метод позволяет получить список вопросов по заданным параметрам с пагинацией и сортировкой.
За один запрос можно получить 10 000 вопросов, максимум. - tags: - - Вопросы - parameters: - - name: isAnswered - in: query - description: | - Отвеченные вопросы (`true`) или неотвеченные вопросы(`false`) - schema: - type: boolean - required: true - - name: nmId - in: query - description: Артикул WB - schema: - type: integer - - name: take - in: query - description: | - Количество запрашиваемых вопросов (максимально допустимое значение для параметра - 10 000, при этом сумма значений параметров `take` и `skip` не должна превышать 10 000) - schema: - type: integer - required: true - - name: skip - in: query - description: | - Количество вопросов для пропуска (максимально допустимое значение для параметра - 10 000, при этом сумма значений параметров `take` и `skip` не должна превышать 10 000) - schema: - type: integer - required: true - - name: order - in: query - description: Сортировка вопросов по дате (`dateAsc`/`dateDesc`) - schema: + description: Error text + GoodHistory: + type: object + properties: + nmID: + type: integer + example: 544833232 + description: WB article + vendorCode: + type: string + example: '34552332' + description: Seller's article + sizeID: + type: integer + example: 54483342 + description: Size ID. In content methods this is `chrtID` field + techSizeName: + type: string + example: '42' + description: Size + price: + type: integer + example: 1500 + description: Price + currencyIsoCode4217: + type: string + example: RUB + description: Currency, according to ISO 4217 + discount: + type: integer + example: 25 + description: "Discount,\_%" + clubDiscount: + type: integer + example: 5 + description: "WB Club discount,\_%" + nullable: true + status: + $ref: '#/components/schemas/GoodStatus' + errorText: + type: string + example: The new price is several times lower than the current price. Item has been moved to Price Quarantine + description: "Error text\n\n
\n

The new price is several times lower than the current price. Item has been moved to Price Quarantine error means that new price with discount is at least 3 times less than the previous one. You can edit price/discount using API or remove the price out of quarantine in\_your account\n

\n" + SupplierTaskMetadata: + type: object + nullable: true + properties: + uploadID: + type: integer + example: 395643565 + description: Upload ID + status: + $ref: '#/components/schemas/TaskStatus' + uploadDate: + $ref: '#/components/schemas/Date' + activationDate: + $ref: '#/components/schemas/Date1' + overAllGoodsNumber: + description: "Total number of\_products" + type: integer + successGoodsNumber: + description: Number products without errors + type: integer + SupplierTaskMetadataBuffer: + nullable: true + type: object + properties: + uploadID: + type: integer + example: 395643565 + description: Upload ID + status: + $ref: '#/components/schemas/TaskStatusBuffer' + uploadDate: + $ref: '#/components/schemas/Date' + activationDate: + $ref: '#/components/schemas/Date1' + overAllGoodsNumber: + description: "Total number of\_products" + type: integer + example: 100 + successGoodsNumber: + description: Number products without errors (`0` because the upload is processing) + type: integer + example: 0 + Date: + type: string + example: '2022-08-21T22:00:13+02:00' + format: date-time + description: Date and time of the upload creation + Date1: type: string - - name: dateFrom - in: query - description: Дата начала периода в формате Unix timestamp - schema: + example: '2022-08-21T22:00:13+02:00' + format: date-time + description: Date and time when the upload processing was started + TaskStatus: + description: "Upload status:\n * `3`\_— processed, no errors in products, prices and discounts were updated\n * `4`\_— canceled\n * `5`\_— processed, but some product have errors. For other products prices and discounts were updated. You can get errors with [Processed upload details](./work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1history~1goods~1task/get) method\n * `6`\_— processed, but all product have errors. You can get them with [Processed upload details](./work-with-products#tag/Prices-and-Discounts/paths/~1api~1v2~1history~1goods~1task/get) method\n" type: integer - example: 1688465092 - - name: dateTo - in: query - description: Дата конца периода в формате Unix timestamp - schema: + example: 3 + TaskStatusBuffer: + description: "Upload status: `1`\_— processing\n" type: integer - example: 1688465092 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - countUnanswered: - type: integer - description: Количество необработанных вопросов - countArchive: - type: integer - description: Количество обработанных вопросов - questions: - description: Массив структур вопросов - type: array - items: - type: object - properties: - id: - type: string - description: id вопроса - text: - type: string - description: Текст вопроса - createdDate: - type: string - format: date-time - description: Дата и время создания вопроса - state: - type: string - description: | - Статус вопроса: - - `none` - вопрос отклонён продавцом (такой вопрос не отображается на портале покупателей) - - `wbRu` - ответ предоставлен, вопрос отображается на сайте покупателей - - `suppliersPortalSynch` - новый вопрос - answer: - description: Структура ответа - type: object - properties: - text: - type: string - description: Текст ответа - editable: - type: boolean - description: Можно ли отредактировать ответ (`false` - нельзя, `true` - можно) - createDate: - type: string - format: date-time - description: Дата и время создания ответа - productDetails: - type: object - description: Структура товара - properties: - nmId: - type: integer - description: Артикул WB - imtId: - type: integer - description: Идентификатор карточки товара - productName: - type: string - description: Название товара - supplierArticle: - type: string - description: Артикул продавца - supplierName: - type: string - description: Имя продавца - brandName: - type: string - description: Название бренда - wasViewed: - type: boolean - description: Просмотрен ли вопрос - error: - type: boolean - description: Есть ли ошибка - example: false - errorText: + example: 1 + GoodStatus: + description: "Product status:\n * `2`\_— no errors, price and/or discount were updated\n * `3`\_— product has errors, data were not updated\n" + type: integer + example: 1 + GoodStatusBuffer: + description: "Product status: `1`\_— processing\n" + type: integer + example: 1 + Error: + type: object + nullable: false + properties: + code: type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - example: + description: Error code + nullable: false + message: + type: string + description: Error description + nullable: false data: - countUnanswered: 24 - countArchive: 508 - questions: - - id: 2ncBtX4B9I0UHoornoqG - text: Текст вопроса - createdDate: '2022-02-01T11:18:08.769513469Z' - state: suppliersPortalSynch - answer: null - productDetails: - imtId: 11157265 - nmId: 14917842 - productName: Кофе - supplierArticle: '123401' - supplierName: ' ГП Реклама и услуги' - brandName: Nescafe - wasViewed: false - isOverdue: true - error: false - errorText: '' - additionalErrors: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr403' - patch: - security: - - HeaderApiKey: [] - summary: Работа с вопросами - description: | - В зависимости от тела запроса можно: - - Просмотреть вопрос. - - Отклонить вопрос. - - Ответить на вопрос или отредактировать ответ. - - Отредактировать ответ на вопрос можно в течение 2 месяцев (60 дней), после предоставления ответа и только 1 раз. - tags: - - Вопросы - requestBody: - content: - application/json: - schema: - oneOf: - - type: object - required: - - id - - wasViewed - properties: - id: - description: Id вопроса - type: string - example: n5um6IUBQOOSTxXoo0gV - wasViewed: - description: Просмотрен (`true`), не просмотрен (`false`) - type: boolean - example: true - - type: object - required: - - id - - answer - - state - properties: - id: - type: string - description: Id вопроса - example: n5um6IUBQOOSTxXoo0gV - answer: - type: object - required: - - text - properties: - text: - type: string - description: Текст ответа - example: текст ответа - state: - type: string - description: | - Статус вопроса: - - `none` - вопрос отклонён продавцом (такой вопрос не отображается на портале покупателей) - - `wbRu` - ответ предоставлен, вопрос отображается на сайте покупателей. - examples: - ViewQuestion: - description: Просмотреть вопрос - value: - id: n5um6IUBQOOSTxXoo0gV - wasViewed: true - RejectQuestion: - description: Отклонить вопрос - value: - id: n5um6IUBQOOSTxXoo0gV - answer: - text: текст ответа - state: none - AnswerQuestionOrEditAnswer: - description: Ответить на вопрос или отредактировать ответ - value: - id: n5um6IUBQOOSTxXoo0gV - answer: - text: текст ответа - state: wbRu - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: type: object + description: Additional data enriching the error nullable: true - error: - type: boolean - description: Есть ли ошибка - errorText: + QuarantineGoods: + type: object + properties: + nmID: + type: integer + example: 206025152 + description: WB article + sizeID: + description: Not used + type: integer + example: null + techSizeName: + description: Not used + type: string + example: '' + currencyIsoCode4217: + type: string + description: Currency, according to ISO 4217 + example: RUB + newPrice: + type: number + format: float + example: 134 + description: New seller's price before discount + oldPrice: + type: number + format: float + example: 4000 + description: Current seller's price before discount + newDiscount: + type: integer + example: 25 + description: New seller's discount, % + oldDiscount: + type: integer + example: 25 + description: Current seller's discount, % + priceDiff: + type: number + format: float + description: 'Difference: `newPrice` * (1 - `newDiscount` / 100) - `oldPrice` * (1 - `oldDiscount` / 100)' + example: -2899.5 + Office: + type: object + description: Office details + properties: + address: + type: string + nullable: false + description: Address + example: ул. Троицкая, Подольск, Московская обл. + name: + type: string + nullable: false + description: Name + example: Коледино + city: + type: string + nullable: false + description: City + example: Москва + id: + type: integer + format: int64 + nullable: false + description: ID + example: 15 + longitude: + type: number + format: float64 + nullable: false + description: Longitude + example: 55.386871 + latitude: + type: number + format: float64 + nullable: false + description: Latitude + example: 37.588898 + cargoType: + description: | +
The type of goods a warehouse can accept:
1 - small-sized goods
2 - ODC (Over dimensional cargo)
3 - CD+ (Dimensional cargo+)
+ type: integer + enum: + - 1 + - 2 + - 3 + example: 1 + deliveryType: + type: integer + description: | + The type of deliveries: + - `1` — Fulfillment By Wildberries (FBS) + - `2` — Delivery By Supplier (DBS) + - `3` — Delivery by WB courier (DBW) + - `5` — In-Store Pickup (C&C) + - `6` — Express Delivery By Supplier (EDBS) + enum: + - 1 + - 2 + - 3 + - 5 + - 6 + example: 1 + federalDistrict: type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки nullable: true - type: array - items: - type: string - example: - data: null - error: false - errorText: '' - additionalErrors: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - '404': - description: Ошибка - не найдено - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr404: - $ref: '#/components/examples/FeedbackErr404' - /api/v1/questions/report: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получение вопросов в формате XLSX - description: Метод позволяет получить XLSX файл с вопросами в кодировке BASE64. - tags: - - Вопросы - parameters: - - name: isAnswered - in: query - description: | - Обработанные вопросы (`true`) или необработанные вопросы(`false`) - schema: - type: boolean - example: false - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - fileName: - type: string - description: Имя файла - example: report.xlsx - file: - type: string - format: binary - description: Файл - example: UEsDBBQAC ... CAADMdQAAAAA= - contentType: - type: string - description: Тип контента - example: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - error: + example: Центральный + description: Federal district of the WB office. If `null`, the office is located outside the Russian Federation or the federal district is not specified + selected: type: boolean - description: Есть ли ошибка - example: false - errorText: + nullable: false + description: The flag indicating that the office has already been selected by the supplier + Warehouse: + type: object + description: Supplier's warehouse details + properties: + name: type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/questions/count: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Количество вопросов - description: Метод позволяет получить количество вопросов. - tags: - - Вопросы - parameters: - - name: dateFrom - in: query - description: Дата начала периода в формате Unix timestamp - schema: - type: integer - example: 1688465092 - - name: dateTo - in: query - description: Дата конца периода в формате Unix timestamp - schema: - type: integer - example: 1688465092 - - name: isAnswered - in: query - description: | - Обработанные вопросы (`true`) или необработанные вопросы (`false`).
Если не указать, вернутся обработанные вопросы. - schema: - type: boolean - example: false - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + nullable: false + description: Name + example: Kosmonavtov 14 + officeId: type: integer - description: Количество вопросов - example: 77 - error: - type: boolean - description: Есть ли ошибка - example: false - errorText: + format: int64 + nullable: false + description: Office ID + example: 15 + id: + type: integer + format: int64 + nullable: false + description: ID + example: 1 + cargoType: + description: | +
The type of goods:
1 - small-sized goods
2 - ODC (Over dimensional cargo)
3 - CD+ (Dimensional cargo+)
+ type: integer + enum: + - 1 + - 2 + - 3 + example: 1 + deliveryType: + type: integer + description: | + The type of deliveries: + - `1` — Fulfillment By Wildberries (FBS) + - `2` — Delivery By Supplier (DBS) + - `3` — Delivery by WB courier (DBW) + - `5` — In-Store Pickup (C&C) + - `6` — Express Delivery By Supplier (EDBS) + enum: + - 1 + - 2 + - 3 + - 5 + - 6 + example: 1 + PassOffice: + type: object + description: Office details, for which a pass is required + properties: + name: type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - example: null - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/question: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получить вопрос по Id - description: Метод позволяет получить вопрос по его Id.
- tags: - - Вопросы - parameters: - - name: id - in: query - required: true - description: Идентификатор вопроса - schema: - type: string - example: K40ZY1kBHA64Ev-ch5bd - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + nullable: false + description: Name + example: Koledino + address: + type: string + nullable: false + description: Address + example: Kosmonavtov 10А + id: + type: integer + format: int64 + nullable: false + description: ID + example: 1 + Next: + type: integer + format: int64 + nullable: false + description: Pagination parameter. Sets the value from which to retrieve the next batch + example: 13833711 + Order: + type: object + properties: + address: type: object + nullable: true + description: Detailed address of the buyer for delivery (if applicable). Some of the fields may be empty due to the specifics of the address. properties: - id: - type: string - description: id вопроса - text: - type: string - description: Текст вопроса - createdDate: - type: string - format: date-time - description: Дата и время создания вопроса - state: - type: string - description: | - Статус вопроса: - - `none` - вопрос отклонён продавцом (такой вопрос не отображается на портале покупателей) - - `wbRu` - ответ предоставлен, вопрос отображается на сайте покупателей - - `suppliersPortalSynch` - новый вопрос - answer: - description: Структура ответа - type: object - properties: - text: - type: string - description: Текст ответа - editable: - type: boolean - description: Можно ли отредактировать ответ (`false` - нельзя, `true` - можно) - createDate: - type: string - format: date-time - description: Дата и время создания ответа - productDetails: - type: object - description: Структура товара - properties: - nmId: - type: integer - description: Артикул WB - imtId: - type: integer - description: Идентификатор карточки товара - productName: - type: string - description: Название товара - supplierArticle: - type: string - description: Артикул продавца - supplierName: - type: string - description: Имя продавца - brandName: + fullAddress: + description: Delivery address type: string - description: Название бренда - wasViewed: - type: boolean - description: Просмотрен ли вопрос - error: - type: boolean - description: Есть ли ошибка - example: false - errorText: + example: Chelyabinsk Region, Chelyabinsk, 51st Arabkir Street, Building 10A, Apartment 42 + longitude: + type: number + format: float64 + nullable: false + description: Longitude + example: 44.519068 + latitude: + type: number + format: float64 + nullable: false + description: Latitude + example: 40.20192 + scanPrice: + type: number + format: uint32 + description: Acceptance price in kopecks. Appears after the actual acceptance of the order + example: 1500 + deliveryType: type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - example: null - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /api/v1/feedbacks/count-unanswered: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Необработанные отзывы - description: Метод позволяет получить количество необработанных отзывов за сегодня, за всё время, и среднюю оценку всех отзывов. - tags: - - Отзывы - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - countUnanswered: - type: integer - description: Количество необработанных отзывов - example: 1 - countUnansweredToday: - type: integer - description: Количество необработанных отзывов за сегодня - example: 0 - valuation: - type: string - description: Средняя оценка всех отзывов - example: '4.7' - error: - type: boolean - description: Есть ли ошибка - example: false - errorText: + nullable: false + description: | +
+
Delivery type:
+
fbs - 'Fulfillment By Wildberries (FBS)'
+
wbgo - 'Delivery by WB courier (DBW)'
+
+ enum: + - fbs + - wbgo + supplyId: type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true + description: Supply ID. Returns if the order is assigned to a supply + example: WB-GI-92937123 + orderUid: + type: string + description: Transaction ID for order grouping. Orders in the same customer's cart will have the same `orderUid`. + example: 165918930_629fbc924b984618a44354475ca58675 + article: + type: string + nullable: false + description: Seller's article + example: one-ring-7548 + colorCode: + type: string + nullable: false + description: Color code (for tinted products only) + example: RAL 3017 + rid: + type: string + nullable: false + description: Order ID in Wildberries systems + example: f884001e44e511edb8780242ac120002 + createdAt: + type: string + format: date-time + nullable: false + description: Order creation date (RFC3339) + example: '2022-05-04T07:56:29Z' + offices: type: array + nullable: true + description: List of offices where you should deliver the order items: - type: string - example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /api/v1/parent-subjects: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Родительские категории товаров - description: Метод позволяет получить список родительских категорий товаров, которые есть у продавца. - tags: - - Отзывы - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + type: string + example: Kaluga + skus: type: array + nullable: false + description: Product barcode array items: - type: object - properties: - subjectId: - type: integer - description: Id категории товара - example: 1162 - subjectName: - type: string - description: Название категории товара - example: Строительные инструменты - error: - type: boolean - description: Есть ли ошибка - example: false - errorText: + type: string + example: '6665956397512' + id: + type: integer + format: int64 + nullable: false + description: Order ID in Marketplace + example: 13833711 + warehouseId: + type: integer + nullable: false + description: Seller's warehouse ID where the order was received. + example: 658434 + officeId: + type: integer + format: int64 + nullable: false + description: ID of the WB warehouse associated with the seller's warehouse + example: 123 + nmId: + type: integer + nullable: false + description: WB article + example: 12345678 + chrtId: + type: integer + nullable: false + description: Product size ID in the Wildberries systems + example: 987654321 + price: + type: integer + nullable: false + description: | + The price in the currency of sale, including all discounts except the amount from the WB Wallet, multiplied by 100. The currency code of the sale is in the `currencyCode` field + example: 1014 + convertedPrice: + type: integer + nullable: false + description: The price in the currency of the seller's country including all discounts, except WB Wallet discount, multiplied by 100. Provided for informational purposes only. + example: 28322 + currencyCode: + type: integer + nullable: false + description: Sale currency code + format: ISO 4217 + example: 933 + convertedCurrencyCode: + type: integer + nullable: false + description: Currency code of the supplier country + format: ISO 4217 + example: 643 + cargoType: + type: integer + nullable: false + description: | +
Type of cargo in the order:
1 - small-sized goods
2 - ODC (Over dimensional cargo)
3 - CD+ (Dimensional cargo+)
+ enum: + - 1 + - 2 + - 3 + comment: + description: Buyer's comment type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedbacks/products/rating: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Средняя оценка товаров по родительской категории - description: Метод позволяет получить среднюю оценку товаров по родительской категории. - tags: - - Отзывы - parameters: - - name: subjectId - in: query - required: true - description: id категории товара - schema: - type: integer - example: 3109 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + nullable: false + maxLength: 300 + example: Упакуйте в плёнку, пожалуйста + isZeroOrder: + description: Indicator of an order made on zero stock of products. (false - the order was made on an item with non-zero stock, true - the order was made on an item with zero stock. Such an order can be canceled without a cancellation fee) + example: false + options: type: object + description: Order options properties: - valuation: - type: string - description: Средняя оценка товаров - example: '4.8' - feedbacksCount: - type: integer - description: Количество отзывов по запрашиваемой категории - example: 277 - error: + isB2b: + type: boolean + description: | + Indicator of a B2B sale: + - false — is not B2B sale + - true — is B2B sale + Supply: + type: object + properties: + id: + type: string + nullable: false + description: Supply ID + example: WB-GI-1234567 + done: type: boolean - description: Есть ли ошибка - example: false - errorText: + nullable: false + description: An indication that the supply is closed + createdAt: type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки + format: date-time + nullable: false + description: Supply creation date (RFC3339) + example: '2022-05-04T07:56:29Z' + closedAt: + type: string + format: date-time nullable: true - type: array - items: - type: string - example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedbacks/products/rating/top: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Товары с наибольшей и наименьшей средней оценкой по родительской категории - description: Метод позволяет получить список из двух товаров, с наибольшей и наименьшей средней оценкой, по родительской категории. - tags: - - Отзывы - parameters: - - name: subjectId - in: query - required: true - description: id категории товара - schema: - type: integer - example: 3109 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - productMaxRating: - $ref: '#/components/schemas/productRating' - productMinRating: - $ref: '#/components/schemas/productRating' - error: - type: boolean - description: Есть ли ошибка - errorText: + description: Supply close date (RFC3339) + example: '2022-05-04T07:56:29Z' + scanDt: type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки nullable: true - type: array - items: - type: string - example: - data: - productMaxRating: - nmId: 14917842 - imtId: 11157265 - subjectId: 5135 - valuationsSum: 1260 - feedbacksCount: 252 - valuation: 5 - productName: Кофе - supplierArticle: '123401' - brandName: Nescafe - productMinRating: - nmId: 14917846 - imtId: 11157269 - subjectId: 5134 - valuationsSum: 4 - feedbacksCount: 2 - valuation: 2 - productName: Кофе - supplierArticle: '425501' - brandName: Nescafe - error: false - errorText: '' - additionalErrors: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedbacks: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список отзывов - description: Метод позволяет получить список отзывов по заданным параметрам с пагинацией и сортировкой. - tags: - - Отзывы - parameters: - - name: isAnswered - in: query - required: true - description: Обработанные отзывы (`true`) или необработанные отзывы(`false`) - schema: - type: boolean - example: false - - name: nmId - in: query - description: Артикул WB - schema: - type: integer - example: 5870243 - - name: take - in: query - required: true - description: Количество отзывов (max. 5 000) - schema: - type: integer - example: 1 - - name: skip - in: query - required: true - description: Количество отзывов для пропуска (max. 199990) - schema: - type: integer - example: 0 - - name: order - in: query - description: Сортировка отзывов по дате (dateAsc/dateDesc) - schema: - type: string - enum: - - dateAsc - - dateDesc - - name: dateFrom - in: query - description: Дата начала периода в формате Unix timestamp - schema: - type: integer - example: 1688465092 - - name: dateTo - in: query - description: Дата конца периода в формате Unix timestamp - schema: - type: integer - example: 1688465092 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - countUnanswered: - type: integer - description: Количество необработанных отзывов - countArchive: - type: integer - description: Количество обработанных отзывов - feedbacks: - $ref: '#/components/schemas/responseFeedback' - error: - type: boolean - description: Есть ли ошибка - errorText: + format: date-time + description: Supply scan date (RFC3339) + example: '2022-05-04T07:56:29Z' + name: type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки + nullable: false + description: Supply name + example: My test supply + cargoType: + type: integer + nullable: false + description: | +
Type of cargo in the supply:
0 - not defined
1 - small-sized goods
2 - ODC (Over dimensional cargo)
3 - CD+ (Dimensional cargo+)
+ enum: + - 0 + - 1 + - 2 + - 3 + destinationOfficeId: + type: integer + format: int64 nullable: true - type: array - items: - type: string - example: - data: - countUnanswered: 1 - countArchive: 1 - feedbacks: - - id: n5um6IUBQOOSTxXoo0gV - imtId: 4702466 - nmId: 5870243 - subjectId: 390 - userName: userName - text: Great product. Thank you - productValuation: 5 - createdDate: '2023-01-25T11:18:33Z' - updatedDate: '2023-01-26T11:09:54Z' - answer: null - state: none - productDetails: - imtId: 4702466 - nmId: 5870243 - productName: Case for phone - supplierArticle: 41058/transparent - supplierName: ГП Реклама и услуги - brandName: 1000 Catalog - size: size - photoLinks: - - fullSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_fs.jpg - miniSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_ms.jpg - video: null - wasViewed: true - error: false - errorText: '' - additionalErrors: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - patch: - security: - - HeaderApiKey: [] - summary: Работа с отзывом - description: | - В зависимости от тела запроса можно: - - Просмотреть отзыв. - - Ответить на отзыв, или отредактировать ответ. - - Оценить отзыв и/или товар. - - Отредактировать ответ на отзыв можно в течение 2 месяцев (60 дней), после предоставления ответа и только 1 раз. - tags: - - Отзывы - requestBody: - content: - application/json: - schema: - oneOf: - - type: object - required: - - id - - wasViewed - properties: - id: - type: string - description: Id отзыва - example: n5um6IUBQOOSTxXoo0gV - wasViewed: - type: boolean - description: Просмотрен (`true`) или не просмотрен (`false`) - example: true - - type: object - required: - - id - - text - properties: - id: - type: string - description: Id отзыва - example: n5um6IUBQOOSTxXoo0gV - text: - type: string - description: Текст ответа (max. 1000 символов) - example: текст ответа - - type: object - required: - - id - properties: - id: - description: Идентификатор отзыва - type: string - supplierFeedbackValuation: - description: Оценка отзыва. Можно получить методом Получить список оценок - type: integer - supplierProductValuation: - description: Оценка товара. Можно получить методом Получить список оценок - type: integer - examples: - ViewFeedback: - description: Просмотреть отзыв - value: - id: n5um6IUBQOOSTxXoo0gV - wasViewed: true - AnswerFeedbackOrEditAnswer: - description: Ответить на отзыв, или отредактировать ответ - value: - id: n5um6IUBQOOSTxXoo0gV - text: текст ответа - RateFeedbackAndProduct: - description: Оценить товар и/или отзыв - value: - id: a2X3e4wB-uQDHp63D36M - supplierFeedbackValuation: 1 - supplierProductValuation: 1 - responses: - '200': - description: Успешно - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - ReviewRatingNotAvailable: - $ref: '#/components/examples/ReviewRatingNotAvailable' - EmptyFieldsInRequest: - $ref: '#/components/examples/EmptyFieldsInRequest' - unknownEstimate: - $ref: '#/components/examples/unknownEstimate' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - '404': - description: Ошибка - не найдено - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr404: - $ref: '#/components/examples/FeedbackErr404' - '422': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - CouldNotFixFeedback: - $ref: '#/components/examples/CouldNotFixFeedback' - /api/v1/supplier-valuations: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получить список оценок - description: Метод позволяет получать список значений для оценки отзыва/товара. - tags: - - Отзывы - parameters: - - name: X-Locale - in: header - schema: - type: string - example: ru - description: Выбор языка значений полей ответа (`ru` - русский, `en` - английский, `zh` - китайский) - responses: - '200': - description: Список оценок - content: - application/json: - schema: - type: object - properties: - data: - description: Данные + description: ID of the destination office for the supply. If `null`, destination office ID is not specified + example: 123 + OrderNew: + type: object + properties: + address: type: object + nullable: true + description: Detailed customer address for delivery (if applicable). Some of the fields may come empty properties: - feedbackValuations: - description: Оценки для отзыва. См. Response samples - type: object - properties: - '1': - type: string - '2': - type: string - '3': - type: string - '4': - type: string - '5': + fullAddress: + description: Delivery address type: string - '6': - type: string - '7': - type: string - productValuations: - description: Оценки для товара См. Response samples - type: object - properties: - '1': - type: string - '2': - type: string - '3': - type: string - '4': - type: string - error: - type: boolean - description: Есть ли ошибка - errorText: + example: Chelyabinsk Region, Chelyabinsk, 51st Arabkir Street, Building 10A, Apartment 42 + longitude: + type: number + format: float64 + nullable: false + description: Longitude + example: 44.519068 + latitude: + type: number + format: float64 + nullable: false + description: Latitude + example: 40.20192 + ddate: type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки + description: | + Planned delivery date.
+ The field is displayed for the schemes: + - `wbgo` — delivery by WB courier (DBW) + - `SGT` — orders for oversized products (cargoType: 2) under the FBS — delivery to the Wildberries warehouse scheme. + nullable: false + example: 17.05.2024 + salePrice: + description: | + Seller's price in the currency of sale, including seller's discount, except the WB Club discount, multiplied by 100 + type: integer nullable: true + example: 504600 + requiredMeta: + description: List of metadata that needs to be added to the order.
At the moment it is required to add UIN and IMEI if they are included in the list. type: array - items: - type: string - example: - data: - feedbackValuations: - '1': Отзыв не относится к товару - '2': Отзыв оставили конкуренты - '3': Спам - '4': Нецензурное содержимое в фото - '5': Нецензурная лексика - '6': Фото не имеет отношения к товару - '7': Отзыв с политическим контекстом - productValuations: - '1': Повредили при доставке - '2': Товар подменили - '3': Случайно отправил не тот товар и хочу его вернуть - '4': Товар вернули после эксплуатации - error: false - errorText: '' - additionalErrors: null - /api/v1/feedbacks/order/return: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - post: - security: - - HeaderApiKey: [] - summary: Возврат товара по ID отзыва - description: | - Метод позволяет запросить на возврат товар, по которому оставлен отзыв.
Возврат доступен для отзывов с `"isAbleReturnProductOrders": true` - tags: - - Отзывы - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - feedbackId: - type: string - description: Идентификатор отзыва - example: - feedbackId: absdfgerrrfff1234 - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object nullable: true - error: - type: boolean - description: Есть ли ошибка - errorText: + items: + type: string + example: + - uin + deliveryType: + type: string + nullable: false + description: | +
+
Delivery type:
+
fbs - 'Fulfillment By Wildberries (FBS)'
+
wbgo - 'Delivery by WB courier (DBW)'
+
+ enum: + - fbs + - wbgo + comment: + description: Buyer's comment type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки + nullable: false + maxLength: 300 + example: Упакуйте в плёнку, пожалуйста + scanPrice: + description: Acceptance price in kopecks. Appears after the actual acceptance of the order. For this method will `null` always be returned + type: number + format: uint32 nullable: true + example: null + orderUid: + type: string + description: Transaction ID for order grouping. Orders in the same customer's cart will have the same `orderUid`. + example: 165918930_629fbc924b984618a44354475ca58675 + article: + type: string + nullable: false + description: Supplier's article + example: one-ring-7548 + colorCode: + description: Color code (for tinted products only) + type: string + nullable: false + example: RAL 3017 + rid: + type: string + nullable: false + description: Order ID in Wildberries systems + example: f884001e44e511edb8780242ac120002 + createdAt: + type: string + format: date-time + nullable: false + description: Order creation date (RFC3339) + example: '2022-05-04T07:56:29Z' + offices: type: array + nullable: true + description: List of offices where you should deliver the order items: - type: string - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/responseDoNotGetFeedback400' - '422': - description: Ошибка - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - responseInaccessibleBackGoodError422: - $ref: '#/components/examples/responseInaccessibleBackGoodError422' - responseUnsuccessfullyBackGoodError422: - $ref: '#/components/examples/responseUnsuccessfullyBackGoodError422' - /api/v1/feedbacks/report: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получение отзывов в формате XLSX - description: | - Метод позволяет получить XLSX файл с отзывами в кодировке BASE64.
За один запрос можно получить 5000 отзывов.
- tags: - - Отзывы - parameters: - - name: isAnswered - in: query - description: Необработанный(`false`) или в архиве(`true`) - schema: - type: boolean - enum: - - true - - false - required: true - deprecated: false - - name: skip - in: query - description: Параметр пагинации, указывает сколько отзывов пропустить (max. 20 000) - schema: - type: integer - example: 1 - - name: dateFrom - description: Дата начала периода в формате Unix timestamp
- in: query - schema: - type: integer - example: 1696226971 - - name: dateTo - description: Дата конца периода в формате Unix timestamp
- in: query - schema: - type: integer - example: 1698916171 - - name: order - description: Сортировка отзывов по дате (dateAsc/dateDesc)
- in: query - schema: - type: string - example: dateDesc - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - fileName: - type: string - description: Имя файла - file: - type: string - format: binary - description: Файл - contentType: type: string - description: Тип контента - error: - type: boolean - description: Есть ли ошибка - errorText: - type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки - nullable: true + example: Калуга + skus: type: array + nullable: false + description: Product barcode array items: - type: string - example: - data: - fileName: report.xlsx - file: UEsDBBQA ... ACAADxGgAAAAA= - contentType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - error: false - errorText: '' - additionalErrors: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedbacks/archive: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Список архивных отзывов - description: | - Метод позволяет получить список архивных отзывов.
Отзыв становится архивным, если: - - На отзыв получен ответ. - - Ответ на отзыв не получен в течение 30 дней. - - В отзыве нет текста и фото. - tags: - - Отзывы - parameters: - - name: nmId - in: query - description: Артикул WB - schema: - type: integer - example: 14917842 - - name: take - in: query - required: true - description: Количество отзывов (max. 5 000) - schema: - type: integer - example: 1 - - name: skip - in: query - required: true - description: Количество отзывов для пропуска - schema: - type: integer - example: 0 - - name: order - in: query - description: Сортировка отзывов по дате (dateAsc/dateDesc) - schema: - type: string - enum: - - dateAsc - - dateDesc - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + type: string + example: '6665956397512' + id: + type: integer + format: int64 + nullable: false + description: Order ID in Marketplace + example: 13833711 + warehouseId: + type: integer + nullable: false + description: Supplier's warehouse ID where the order was received + example: 658434 + officeId: + type: integer + format: int64 + nullable: false + description: ID of the WB warehouse associated with the seller's warehouse + example: 123 + nmId: + type: integer + nullable: false + description: WB article + example: 123456789 + chrtId: + type: integer + nullable: false + description: Product size ID in the Wildberries systems + example: 987654321 + price: + type: integer + nullable: false + description: | + The price in the currency of sale, including all discounts except the amount from the WB Wallet, multiplied by 100. The currency code of the sale is in the `currencyCode` field + example: 1014 + convertedPrice: + type: integer + nullable: false + description: The price in the currency of the seller's country including all discounts, except WB Wallet discount, multiplied by 100. Provided for informational purposes only. + example: 28322 + currencyCode: + type: integer + nullable: false + description: Sale currency code + format: ISO 4217 + example: 933 + convertedCurrencyCode: + type: integer + nullable: false + description: Currency code of the supplier country + format: ISO 4217 + example: 643 + cargoType: + type: integer + nullable: false + description: '
Type of cargo in the order:
1 - small-sized goods
2 - ODC (Over dimensional cargo)
3 - CD+ (Dimensional cargo+)
' + enum: + - 1 + - 2 + - 3 + isZeroOrder: + description: Indicator of an order made on zero stock of products. (false - the order was made on an item with non-zero stock, true - the order was made on an item with zero stock. Such an order can be canceled without a cancellation fee) + example: false + options: type: object + description: Order options properties: - feedbacks: - $ref: '#/components/schemas/responseFeedback' - error: - type: boolean - description: Есть ли ошибка - errorText: - type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки + isB2b: + type: boolean + description: | + Indicator of a B2B sale: + - false — is not B2B sale + - true — is B2B sale + SupplyOrder: + type: object + properties: + scanPrice: + description: Acceptance price in kopecks. Appears after the actual acceptance of the order. For this method will `null` always be returned + type: number + format: uint32 nullable: true + example: null + orderUid: + type: string + description: Transaction ID for order grouping. Orders in the same customer's cart will have the same `orderUid`. + example: 165918930_629fbc924b984618a44354475ca58675 + article: + type: string + nullable: false + description: Supplier's article + example: one-ring-7548 + colorCode: + description: Color code (for tinted products only) + type: string + nullable: false + example: RAL 3017 + rid: + type: string + nullable: false + description: Order ID in Wildberries systems + example: f884001e44e511edb8780242ac120002 + createdAt: + type: string + format: date-time + nullable: false + description: Order creation date (RFC3339) + example: '2022-05-04T07:56:29Z' + offices: type: array + nullable: true + description: List of offices where you should deliver the order items: - type: string - example: - data: - feedbacks: - - id: z0fuK3wBIAjWoLmLkJKo - imtId: 11157265 - nmId: 14917842 - subjectId: 5135 - userName: userName - text: Все отлично.Подарил теще. Красивое! - productValuation: 5 - createdDate: '2011-11-01T16:41:39+04:00' - updatedDate: '2022-06-21T12:02:42Z' - answer: - text: супер - state: wbRu - editable: false - state: wbRu - productDetails: - imtId: 11157265 - nmId: 14917842 - productName: Кофе - supplierArticle: '123401' - supplierName: тест - brandName: Nescafe - size: size - photoLinks: - - fullSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_fs.jpg - miniSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_ms.jpg - video: null - wasViewed: true - error: false - errorText: '' - additionalErrors: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedbacks/products/rating/nmid: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Средняя оценка товара по артикулу WB - description: Метод позволяет получить среднюю оценку товара по его артикулу WB. - tags: - - Отзывы - parameters: - - name: nmId - in: query - description: Артикул WB - schema: - type: integer - example: 14917842 - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - valuation: type: string - description: Средняя оценка товара - example: '4.3' - feedbacksCount: - type: integer - description: Количество отзывов на данный товар - example: 16 - error: - type: boolean - description: Есть ли ошибка - example: false - errorText: - type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true + example: Калуга + skus: type: array + nullable: false + description: Product barcode array items: - type: string - example: null - '400': - description: Ошибка переданных параметров - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr400: - $ref: '#/components/examples/FeedbackErr400' - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedbacks/count: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Количество отзывов - description: Метод позволяет получить количество отзывов. - tags: - - Отзывы - parameters: - - name: dateFrom - in: query - description: Дата начала периода в формате Unix timestamp - schema: - type: integer - example: 1688465092 - - name: dateTo - in: query - description: Дата конца периода в формате Unix timestamp - schema: - type: integer - example: 1688465092 - - name: isAnswered - in: query - description: | - Обработанные отзывы(`true`) или необработанные отзывы(`false`).
Если не указать, вернутся обработанные отзывы. - schema: - type: boolean - example: false - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + type: string + example: '6665956397512' + id: type: integer - description: Количество отзывов - example: 724583 - error: - type: boolean - description: Есть ли ошибка + format: int64 + nullable: false + description: Order ID in Marketplace + example: 13833711 + warehouseId: + type: integer + nullable: false + description: Supplier's warehouse ID where the order was received + example: 658434 + nmId: + type: integer + nullable: false + description: WB article + example: 123456789 + chrtId: + type: integer + nullable: false + description: Product size ID in the Wildberries systems + example: 987654321 + price: + type: integer + nullable: false + description: | + The price in the currency of sale, including all discounts except the amount from the WB Wallet, multiplied by 100. The currency code of the sale is in the `currencyCode` field + example: 1014 + convertedPrice: + type: integer + nullable: false + description: The price in the currency of the seller's country including all discounts, except WB Wallet discount, multiplied by 100. Provided for informational purposes only. + example: 28322 + currencyCode: + type: integer + nullable: false + description: Sale currency code + format: ISO 4217 + example: 933 + convertedCurrencyCode: + type: integer + nullable: false + description: Currency code of the supplier country + format: ISO 4217 + example: 643 + cargoType: + type: integer + nullable: false + description: | +
Type of cargo in the order:
1 - small-sized goods
2 - ODC (Over dimensional cargo)
3 - CD+ (Dimensional cargo+)
+ enum: + - 1 + - 2 + - 3 + isZeroOrder: + description: Indicator of an order made on zero stock of products. (false - the order was made on an item with non-zero stock, true - the order was made on an item with zero stock. Such an order can be canceled without a cancellation fee) example: false - errorText: + SupplyTrbx: + type: object + properties: + id: + description: Box ID. type: string - description: Описание ошибки - example: '' - additionalErrors: - description: Дополнительные ошибки - nullable: true + example: WB-TRBX-1234567 + orders: type: array + nullable: false + description: List of order IDs. items: - type: string - example: null - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - '403': - description: Ошибка авторизации - content: - application/json: - schema: - $ref: '#/components/schemas/responsefeedbackErr' - examples: - FeedbackErr403: - $ref: '#/components/examples/FeedbackErr403' - /api/v1/feedback: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получить отзыв по Id - description: Метод позволяет получить отзыв по его Id. - tags: - - Отзывы - parameters: - - name: id - in: query - required: true - description: Идентификатор отзыва - schema: - type: string - example: G7Y9Y1kBAtKOitoBT_lV - responses: - '200': - description: Успешно - content: - application/json: - schema: - type: object - properties: - data: + type: integer + example: 1234567 + TrbxStickers: + type: object + properties: + barcode: + type: string + minLength: 1 + description: The encoded value of the sticker. + example: $WBMP:1:123:1234567 + file: + type: string + format: byte + minLength: 1 + description: Base64 encoded sticker file in the requested format. + example: U3dhZ2dlciByb2Nrcw== + Meta: + type: object + description: Order metadata + properties: + imei: type: object properties: - id: - type: integer - description: Идентификатор отзыва - userName: - type: string - description: Имя автора отзыва - matchingSize: - type: string - description: | - Соответствие заявленного размера реальному. -
Возможные значения: - - ` ` - для безразмерных товаров - - `ок` - соответствует размеру - - `smaller` - маломерит - - `bigger` - большемерит - text: - type: string - description: Текст отзыва - productValuation: - type: integer - description: Оценка товара - createdDate: - type: string - format: date-time - description: Дата и время создания отзыва - state: - type: string - description: | - Статус отзыва: - - `none` - не обработан (новый) - - `wbRu` - обработан - answer: - type: object - description: Структура ответа - properties: - text: - type: string - description: Текст ответа - state: - type: string - description: | - Статус: - - `none` - новый - - `wbRu`- отображается на сайте - - `reviewRequired` - ответ проходит проверку - - `rejected` - ответ отклонён - productDetails: - description: Структура товара - type: object - properties: - nmId: - type: integer - description: Артикул WB - imtId: - type: integer - description: Идентификатор карточки товара - productName: - type: string - description: Название товара - supplierArticle: - type: string + value: nullable: true - description: Артикул продавца - supplierName: type: string + example: '123456789012345' + description: IMEI + uin: + type: object + properties: + value: nullable: true - description: Имя продавца - brandName: type: string + example: '123456789012345' + description: UIN + gtin: + type: object + properties: + value: nullable: true - description: Бренд товара - size: type: string - description: Размер товара (`techSize` в КТ) - photoLinks: - description: Массив структур фотографий - type: array - items: - type: object - properties: - fullSize: - type: string - description: Адрес фотографии полного размера - miniSize: - type: string - description: Адрес фотографии маленького размера - video: - description: Структура видео - type: object - properties: - previewImage: - type: string - description: Ссылка на обложку видео - link: + example: '123456789012345' + description: GTIN + sgtin: + type: object + properties: + value: + type: array + items: + type: string + example: + - '123456789012345' + nullable: true + description: Data Matrix code (Chestny ZNAK) + expiration: + type: object + properties: + value: type: string - description: Ссылка на файл плейлиста видео (доступно по протоколу hls) - duration_sec: - type: integer - description: Общая продолжительность видео - wasViewed: - type: boolean - description: Просмотрен ли отзыв - isAbleSupplierFeedbackValuation: - description: Доступна ли продавцу оценка отзыва (`true` - доступна, `false` - не доступна) - type: boolean - supplierFeedbackValuation: - description: Оценка отзыва, оставленная продавцом - type: integer - isAbleSupplierProductValuation: - description: Доступна ли продавцу оценка товара (`true` - доступна, `false` - не доступна) - type: boolean - supplierProductValuation: - description: Оценка товара, оставленная продавцом - type: integer - isAbleReturnProductOrders: - description: Доступна ли товару опция возврата (`false` - нет, `true` - да) - type: boolean - returnProductOrdersDate: - description: Дата и время, когда на запрос возврата был получен ответ со статус-кодом 200. - type: string - bables: - description: Список тегов покупателя - type: array - items: - type: string - error: - type: boolean - description: Есть ли ошибка - errorText: + example: 12.09.2030 + nullable: true + description: Expiration date + format: date (dd.mm.yyyy) + Pass: + type: object + description: Supplier's pass details + properties: + firstName: type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - example: - data: - id: n5um6IUBQOOSTxXoo0gV - imtId: 4702466 - nmId: 5870243 - subjectId: 390 - userName: ИмяПокупателя - text: Хороший кейс. Спасибо - productValuation: 5 - createdDate: '2023-01-25T11:18:33Z' - answer: null - state: none - productDetails: - imtId: 4702466 - nmId: 5870243 - productName: Чехол для телефона - supplierArticle: 41058/transparent - supplierName: ГП Реклама и услуги - brandName: 1000 Каталог - size: size - photoLinks: - - fullSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_fs.jpg - miniSize: feedbacks/470/4702466/2dc59933-00b5-4ba5-a11a-96312ef179f1_ms.jpg - video: null - wasViewed: true - error: false - errorText: '' - additionalErrors: null - '401': - description: Не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - /api/v1/templates: - servers: - - url: https://feedbacks-api.wildberries.ru - - url: https://feedbacks-api.wb.ru - get: - security: - - HeaderApiKey: [] - summary: Получить шаблоны ответов - description: Метод позволяет получить шаблоны ответов на отзывы/вопросы. - tags: - - Шаблоны для вопросов и отзывов - parameters: - - name: templateType - in: query - schema: - type: integer - example: 1 - description: | - `1` - шаблоны для отзывов
`2` - шаблоны для вопросов - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/Response200' - - $ref: '#/components/schemas/ResponseErrorTemplate' - examples: - Response200: - $ref: '#/components/examples/Response200' - IncorrectTemplateType: - $ref: '#/components/examples/IncorrectTemplateType' - '401': - description: Не авторизован - content: - text/plain; charset=utf-8: - schema: - type: string - examples: - EmptyAuthHeader: - $ref: '#/components/examples/EmptyAuthHeader' - TokenScopeNotAllowed: - $ref: '#/components/examples/TokenScopeNotAllowed' - post: - security: - - HeaderApiKey: [] - summary: Создать шаблон - description: | - Метод позволяет создать шаблон ответа на отзыв/вопрос.
Всего можно создать 20 шаблонов. 10 на отзывы и 10 на вопросы.
Допустимы любые символы. - tags: - - Шаблоны для вопросов и отзывов - requestBody: - content: - application/json: - schema: - type: object - required: - - name - - templateType - - text - properties: - name: - type: string - description: Название шаблона (от 1 до 100 символов) - templateType: - type: integer - description: | - Тип шаблона
`1` - шаблон для отзывов
`2` - шаблон для вопросов - text: - type: string - description: Текст шаблона (от 2 до 1000 символов) - example: - name: name - templateType: 1 - text: text - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PostTemplateOK' - - $ref: '#/components/schemas/ResponseErrorTemplate' - examples: - PostTemplateOK: - $ref: '#/components/examples/PostTemplateOK' - TemplateLimitExceeded: - $ref: '#/components/examples/TemplateLimitExceeded' - InvalidTemplateNameLen: - $ref: '#/components/examples/InvalidTemplateNameLen' - InvalidCommentLenTemplate: - $ref: '#/components/examples/InvalidCommentLenTemplate' - InvalidRequest: - $ref: '#/components/examples/InvalidRequest' - '401': - description: Не авторизован - content: - text/plain; charset=utf-8: - schema: - type: string - examples: - EmptyAuthHeader: - $ref: '#/components/examples/EmptyAuthHeader' - TokenScopeNotAllowed: - $ref: '#/components/examples/TokenScopeNotAllowed' - patch: - security: - - HeaderApiKey: [] - summary: Редактировать шаблон - description: | - Метод позволяет отредактировать шаблон.
Допустимы любые символы. - tags: - - Шаблоны для вопросов и отзывов - requestBody: - content: - application/json: - schema: - type: object - required: - - name - - templateID - - text - properties: - name: - type: string - description: Название шаблона (от 1 до 100 символов) - templateID: - type: integer - description: Идентификатор шаблона - text: - type: string - description: Текст шаблона (от 2 до 1000 символов) - example: - name: newname - templateID: 1234 - text: newtext - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PatchDelRespOK' - - $ref: '#/components/schemas/ResponseErrorTemplate' - examples: - PatchDelRespOK: - $ref: '#/components/examples/PatchDelRespOK' - EditTemplateError: - $ref: '#/components/examples/EditTemplateError' - InvalidRequest: - $ref: '#/components/examples/InvalidRequest' - InvalidTemplateNameLen: - $ref: '#/components/examples/InvalidTemplateNameLen' - InvalidCommentLenTemplate: - $ref: '#/components/examples/InvalidCommentLenTemplate' - '401': - description: Не авторизован - content: - text/plain; charset=utf-8: - schema: - type: string - examples: - EmptyAuthHeader: - $ref: '#/components/examples/EmptyAuthHeader' - TokenScopeNotAllowed: - $ref: '#/components/examples/TokenScopeNotAllowed' - delete: - security: - - HeaderApiKey: [] - summary: Удалить шаблон - description: | - Метод позволяет удалить шаблон.
- tags: - - Шаблоны для вопросов и отзывов - requestBody: - content: - application/json: - schema: - type: object - required: - - templateID - properties: - templateID: - type: integer - description: Идентификатор шаблона (max. 1) - example: - templateID: 1234 - responses: - '200': - description: '' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PatchDelRespOK' - - $ref: '#/components/schemas/ResponseErrorTemplate' - examples: - PatchDelRespOK: - $ref: '#/components/examples/PatchDelRespOK' - InvalidRequest: - $ref: '#/components/examples/InvalidRequest' - ErrorDeleteBD: - $ref: '#/components/examples/ErrorDeleteBD' - '401': - description: Не авторизован - content: - text/plain; charset=utf-8: - schema: - type: string - examples: - EmptyAuthHeader: - $ref: '#/components/examples/EmptyAuthHeader' - TokenScopeNotAllowed: - $ref: '#/components/examples/TokenScopeNotAllowed' - /api/v1/tariffs/commission: - get: - summary: Комиссия по категориям товаров - tags: - - Комиссии - description: | -

Комиссия WB по родительским категориям товаров согласно модели продаж.

Максимум — 1 запрос в минуту.

- parameters: - - $ref: '#/components/parameters/Locale' - responses: - '200': - description: Комиссия - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/Commission' - - $ref: '#/components/schemas/CommissionChina' - - $ref: '#/components/schemas/CommissionTurkey' - - $ref: '#/components/schemas/CommissionUzbekistan' - examples: - Commission: - $ref: '#/components/examples/Commission' - CommissionChina: - $ref: '#/components/examples/CommissionChina' - CommissionTurkey: - $ref: '#/components/examples/CommissionTurkey' - CommissionUzbekistan: - $ref: '#/components/examples/CommissionUzbekistan' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/RateLimit' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/tariffs/box: - get: - summary: Тарифы для коробов - tags: - - Коэффициенты складов - description: "

Для товаров, которые поставляются на\_склад в коробах (коробках), возвращает стоимость:

    \n
  • доставки со склада или пункта приёма до покупателя;
  • \n
  • доставки от покупателя до пункта приёма;
  • \n
  • хранения на\_складе Wildberries.
  • \n

Максимум — 60 запросов в минуту.

\n" - parameters: - - $ref: '#/components/parameters/Date' - responses: - '200': - description: Тарифы для коробов (коробок) - content: - application/json: - schema: - $ref: '#/components/schemas/TariffsBoxResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/tariffs/pallet: - get: - summary: Тарифы для монопаллет - tags: - - Коэффициенты складов - description: "

Для товаров, которые поставляются на\_склад Wildberries на\_монопаллетах, возвращает стоимость:

    \n
  • доставки со склада до покупателя;
  • \n
  • доставки от покупателя до склада;
  • \n
  • хранения на\_складе Wildberries.
  • \n

Максимум — 60 запросов в минуту.

\n" - parameters: - - $ref: '#/components/parameters/Date' - responses: - '200': - description: Тарифы для монопаллет - content: - application/json: - schema: - $ref: '#/components/schemas/TariffsPalletResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/tariffs/return: - get: - summary: "Тарифы на\_возврат" - tags: - - Стоимость возврата продавцу - description: "

Возвращает тарифы:

  • на\_перевозку товаров со склада Wildberries или из пункта приёма до продавца;
  • на\_обратную перевозку возвратов, которые не забрал продавец.

Максимум — 60 запросов в минуту.

" - parameters: - - $ref: '#/components/parameters/Date' - responses: - '200': - description: "Тарифы на\_возврат" - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnTariffsResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/AccessDenied' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /api/v1/seller/chats: - servers: - - url: https://buyer-chat-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Список чатов - description: | - Возвращает список всех чатов продавца. - - Максимум 10 запросов за 10 секунд - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/ChatsResponse' - examples: - ResponseChats: - value: - result: - - chatID: 1:361b656c-5c0e-295b-db03-3d5b4d454c32 - replySign: 1:361b656c-5c0e-295b-db03-3d5b4d454c32:45734505:238d4d4925998ce295632034545f2fdf88892414c0f24bb48ac5d89f7866cff95022ef33d6563575d656bce676e4d36b48ed6084997347e55601646af6b37d96 - clientID: '12345' - clientName: Иван - - chatID: 1:578903a4-c140-b95b-9d51-896c58ab22dc - replySign: 1:578903a4-c140-b95b-9d51-896c58ab22dc:60012000:8b42800e4be81b56071bfac84a01b1da5a79f7b7eea2a08c3a7efe7e5d63face7240b9036d4a21ce9fe1eeeda1d7cfe27d241edced755267304922f3eb935467 - clientID: '987654' - clientName: Владислав - errors: null - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Error429' - examples: - LimitExceeded: - value: - code: 429 - message: '07e4668e-ac2242c7c8c5-UK:NvjBmvW6Zz9 (f7b1483684c6 {: max-rate 1rps, max-burst 10, auto-ban-period 30s}) too many requests' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/seller/events: - get: - servers: - - url: https://buyer-chat-api.wildberries.ru - security: - - HeaderApiKey: [] - summary: События чатов - description: | - Возвращает список событий всех чатов. - Чтобы получить все события:
1. Сделайте первый запрос без параметра `next`.
2. Повторяйте запрос со значением параметра `next` из ответа на предыдущий запрос, пока `totalEvents` не станет равным `0`. Это будет означать, что вы получили все события. -
Чтобы получать только новые события, укажите параметр `next` со значением поля `addTimestamp` из последнего полученного события.
Максимум 10 запросов за 10 секунд - parameters: - - name: next - in: query - description: | - Пагинатор. С какого момента получить следующий пакет данных.
Формат Unix timestamp **с миллисекундами** - schema: - type: integer - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/EventsResponse' - example: - result: - next: 1698045576000 - newestEventTime: '2023-10-23T07:19:36Z' - oldestEventTime: '2023-10-23T05:02:20Z' - totalEvents: 4 - events: - - chatID: 1:1e265a58-a120-b178-008c-60af2460207c - eventID: 55adee45-11f0-33b6-a847-6ccc7c78b2ec - eventType: message - isNewChat: true - message: - attachments: - goodCard: - date: '2023-10-18T11:46:01.528526Z' - needRefund: false - nmID: 12345678 - price: 500 - priceCurrency: RUB - rid: 2fb52cd9e25e52538a5f05994e688ae5 - size: '0' - statusID: 11 - files: - - contentType: application/pdf - date: '2023-10-23T08:02:19.594Z' - name: Чек.pdf - url: https://chat-basket-01.wbbasket.ru/vol0/part3265/fb25c9e9-cae8-52db-b68e-736c1896a3f5/pdf/0380e781-281e-41b5-8ae1-ce281f15a4a7.pdf - size: 1046143 - images: - - date: '2023-10-23T08:02:20.717Z' - url: https://chat-basket-01.wbbasket.ru/vol0/part2345/fb89c9e9-cae8-52db-b68e-736c1466a3f5/jpg/0823ff24-821e-40e9-8cdf-0a2b5fd86a32.jpg - text: Здравствуйте! У меня вопрос по товару "Альбом, бренд Эконом, артикул 13480414, товар получен 18.10.2023" - source: rusite - addTimestamp: 1698037340000 - addTime: '2023-10-23T05:02:20Z' - replySign: 1:1e265a58-a120-b178-008c-60af2460207c:66f136e919a8207e136757754f253189bfb9ae1ad9da9170c9d5c478626663908888c370216525bef51c0ca8d77952e05c9c17f9b63ab00374c5555b42efc07d - sender: client - clientID: '186132' - clientName: Алёна - - chatID: 1:1e265a58-a120-b178-008c-60af2460207c - eventID: cef95d3c-0345-4dc9-b6df-4c8c57a176a9 - eventType: message - message: - text: Здравствуйте! Пришёл не тот цвет. Можно вернуть и заказать другой товар? - source: rusite - addTimestamp: 1698037387000 - addTime: '2023-10-23T05:03:07Z' - sender: client - clientID: '186132' - clientName: Алёна - - chatID: 1:1e265a58-a120-b178-008c-60af2460207c - eventID: fd22e5bf-64fd-43f7-b3a0-ad29uu027f97 - eventType: message - message: - text: Здравствуйте. Да, сейчас оформим возврат. - source: seller-public-api - addTimestamp: 1698038124000 - addTime: '2023-10-23T05:15:24Z' - sender: seller - - chatID: 1:1e265a58-a120-b178-008c-60af2460207c - eventID: cef95d3c-0345-4dc9-b6df-4c8c75a176a7 - eventType: refund - refund: - actionType: sellerRequestRefund - price: 500 - priceCurrency: RUB - rid: 2fb52cd9e25e52538a5f05994e688ae5 - addTimestamp: 1698045576000 - addTime: '2023-10-23T07:19:36Z' - sender: seller - errors: null - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - IncorrectNextParameter: - description: Тип значения или его величина не корректны - value: - error: Invalid number - IncorrectNextParameter1: - description: Недопустимое значение 0 - value: - error: Invalid value for "next" - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Error429' - examples: - LimitExceeded: - value: - code: 429 - message: '07e4668e-ac2242c7c8c5-UK:NvjBmvW6Zz9 (f7b1483684c6 {: max-rate 1rps, max-burst 10, auto-ban-period 30s}) too many requests' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/seller/message: - post: - servers: - - url: https://buyer-chat-api.wildberries.ru - security: - - HeaderApiKey: [] - summary: Отправить сообщение - description: | - Отправляет сообщения покупателю. - Максимум 10 запросов за 10 секунд - requestBody: - content: - multipart/form-data: - schema: - required: - - replySign - type: object - properties: - replySign: - maxLength: 255 - type: string - description: | - Подпись чата. Можно получить из [информации по чату](./#/paths/~1api~1v1~1seller~1chats/get) или [данных события](./#/paths/~1api~1v1~1seller~1events/get), если в событии есть поле `"isNewChat": true`. - message: - maxLength: 1000 - type: string - description: Текст сообщения. Максимум 1000 символов. - file: - type: array - description: | - Файлы, формат JPEG, PDF или PNG, максимальный размер — 5 Мб каждый. Максимальный суммарный размер файлов — 30 Мб. - items: + nullable: false + description: First name + example: Alex + dateEnd: type: string - format: binary - required: true - responses: - '200': - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponse' - example: - result: - addTime: 1712848270018 - chatID: 1:641b623c-5c0e-295b-db03-3d5b4d484c32 - errors: [] - '400': - description: Некорректный запрос - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - examples: - InvalidSignature: - description: Подпись некорректна - value: - error: Invalid signature - InvalidFileSize: - description: Размер файла превышает допустимый - value: - error: 'A24FA09844E: attachment too big. Max size: 5MiB' - UnsupportedFilesType: - description: Тип файла не поддерживается - value: - error: '4A9F2544E29: "video_2023-07-25_10-54-09.mp4" has unsupported mime type' - InvalidMessage: - description: Значение параметра message некорректно - value: - error: Invalid value for "message" - '403': - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '429': - description: Слишком много запросов - content: - application/json: - schema: - $ref: '#/components/schemas/Error429' - examples: - LimitExceeded: - value: - code: 429 - message: '07e4668e-ac2242c7c8c5-UK:NvjBmvW6Zz9 (f7b1483684c6 {: max-rate 1rps, max-burst 10, auto-ban-period 30s}) too many requests' - '500': - description: Внутренняя ошибка сервера - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/claims: - servers: - - url: https://returns-api.wildberries.ru - get: - security: - - HeaderApiKey: [] - summary: Заявки покупателей на возврат - description: "Возвращает заявки покупателей на возврат товаров за текущие 14 дней.
Максимум 20 запросов в\_минуту\n" - parameters: - - $ref: '#/components/parameters/is_archive' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/nm_id' - responses: - '200': - $ref: '#/components/responses/GetClaimsSuccessResponse' - '400': - $ref: '#/components/responses/Error400GetClaims' - '401': - $ref: '#/components/responses/ErrorUnknownUser' - '429': - $ref: '#/components/responses/ErrorRateLimit' - 5XX: - $ref: '#/components/responses/ErrorInternalResponse' - /api/v1/claim: - servers: - - url: https://returns-api.wildberries.ru - patch: - security: - - HeaderApiKey: [] - summary: Ответ на заявку покупателя - description: "Отправляет ответ на заявку покупателя на возврат.
Максимум 20 запросов в\_минуту\n" - requestBody: - $ref: '#/components/requestBodies/PatchClaimReq' - responses: - '200': - $ref: '#/components/responses/PatchClaimSuccessResponse' - '400': - $ref: '#/components/responses/Error400PatchClaim' - '401': - $ref: '#/components/responses/ErrorUnknownUser' - '429': - $ref: '#/components/responses/ErrorRateLimit' - 5XX: - $ref: '#/components/responses/ErrorInternalResponse' -components: - schemas: - responseCardCreate: - type: object - properties: - data: - type: object - nullable: true - example: null - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - oneOf: - - type: object - properties: - string: - type: string - - type: string - requestMoveNmsImtConn: - type: object - required: - - targetIMT - - nmIDs - properties: - targetIMT: - description: Существующий у продавца `imtID`, под которым необходимо объединить НМ - type: integer - example: 123 - nmIDs: - description: | - `nmID`, которые необходимо объединить (максимум 30) - type: array - items: - type: integer - example: - - 837459235 - - 828572090 - requestMoveNmsImtDisconn: - type: object - required: - - nmIDs - properties: - nmIDs: - description: '`nmID`, которые необходимо разъединить (max 30)' - type: array - items: - type: integer - example: - - 837459235 - - 828572090 - responseIncorrectDate: - type: object - properties: - error: - type: string - responseContentError1: - type: object - properties: - data: - type: object - nullable: true - example: null - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - properties: - error: - type: string - responseBodyContentError400: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - properties: - MoveNmsToTrash: - type: string - example: - data: null - error: true - errorText: Текст ошибки - additionalErrors: - MoveNmsToTrash: Bad request - responseBodyContentError403: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: string - example: - data: null - error: true - errorText: Доступ запрещен - additionalErrors: Доступ запрещен - responseContentError4: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - properties: - description: - type: string - responseContentError5: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: object - properties: - tagID: - type: string - responseContentError6: - type: object - properties: - data: - type: object - nullable: true - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - type: string - nullable: true - example: - data: null - error: false - errorText: '' - additionalErrors: null - mediaErrors: - type: object - properties: - additionalErrors: - description: Дополнительные ошибки - type: object - data: - type: object - error: - description: Флаг ошибки - type: boolean - errorText: - description: Описание ошибки - type: string - example: - additionalErrors: null - data: null - error: true - errorText: Текст ошибки - ResponseError: - type: object - properties: - data: - type: object - nullable: true - error: - type: boolean - errorText: - type: string - TaskAlreadyExistsError: - type: object - properties: - data: - type: object - properties: - id: - description: ID загрузки - type: integer - alreadyExists: - description: "Флаг дублирования загрузки: `true`\_— такая загрузка уже есть\n" - type: boolean - error: - description: Флаг ошибки - type: boolean - errorText: - description: Текст ошибки - type: string - TaskCreated: - type: object - properties: - data: - type: object - properties: - id: - type: integer - description: ID загрузки - alreadyExists: - type: boolean - description: "Флаг дублирования загрузки: `true`\_— такая загрузка уже есть\n" - example: false - error: - description: Флаг ошибки - type: boolean - example: false - errorText: - description: Текст ошибки - type: string - example: '' - Goods: - type: array - description: "Товары, цены и скидки для них. Максимум 1\_000\_товаров. Цена и скидка не могут быть пустыми одновременно.\n

\nЕсли новая цена со скидкой будет хотя бы в\_3 раза меньше старой, она попадёт [в\_карантин](https://seller.wildberries.ru/discount-and-prices/quarantine) и товар будет продаваться по\_старой цене. Ошибка об\_этом будет в\_ответах методов [Состояния загрузок](./#tag/Sostoyaniya-zagruzok)\n

\nВы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина [в\_личном кабинете](https://seller.wildberries.ru/discount-and-prices/quarantine)\n" - items: - $ref: '#/components/schemas/Good' - Good: - type: object - required: - - nmID - properties: - nmID: - type: integer - example: 123 - description: Артикул Wildberries - price: - type: integer - example: 999 - description: "Цена. Валюту можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `currencyIsoCode4217`" - discount: - type: integer - example: 30 - description: "Скидка,\_%" - SizeGoodsBody: - description: "Размеры и цены для них. Максимум 1\_000 размеров\n

\nЕсли новая цена со скидкой будет хотя бы в\_3 раза меньше старой, она попадёт [в\_карантин](https://seller.wildberries.ru/discount-and-prices/quarantine) и товар будет продаваться по\_старой цене. Ошибка об\_этом будет в\_ответах методов [Состояния загрузок](./#tag/Sostoyaniya-zagruzok)\n

\nВы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина [в\_личном кабинете](https://seller.wildberries.ru/discount-and-prices/quarantine)\n" - type: array - items: - $ref: '#/components/schemas/SizeGoodReq' - SizeGoodReq: - type: object - required: - - nmID - - sizeID - - price - properties: - nmID: - type: integer - example: 123 - description: Артикул Wildberries - sizeID: - type: integer - example: 98989887 - description: "ID размера. Можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `sizeID`. В методах контента это поле `chrtID`" - price: - type: integer - example: 999 - description: "Цена. Валюту можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `currencyIsoCode4217`" - GoodsList: - type: object - description: Размеры товара - properties: - nmID: - type: integer - description: Артикул Wildberries - example: 98486 - vendorCode: - type: string - description: Артикул продавца - example: '07326060' - sizes: - type: array - description: Размер - items: + nullable: false + description: Pass expiration date + example: '2022-07-31 17:53:13+00:00' + lastName: + type: string + nullable: false + description: Last name + example: Petrov + carModel: + type: string + nullable: false + description: Car model + example: Lamborghini + carNumber: + type: string + nullable: false + description: Car number + example: A456BC123 + officeName: + type: string + nullable: false + description: Office name + example: Koledino + officeAddress: + type: string + nullable: false + description: Office address + example: Kosmonavtov 10А + officeId: + type: integer + format: int64 + nullable: false + description: Office ID + example: 15 + id: + type: integer + format: int64 + nullable: false + description: ID + example: 1 + StoreContactResponseBody: type: object + description: Seller's warehouse contacts properties: - sizeID: - type: integer - description: ID размера. В методах контента это поле `chrtID` - format: int64 - example: 3123515574 - price: - type: integer - description: Цена - example: 500 - discountedPrice: - type: number - description: Цена со скидкой - example: 350 - techSizeName: - description: Размер товара - type: string - example: '42' - currencyIsoCode4217: - type: string - description: Валюта, по стандарту ISO 4217 - example: RUB - discount: - type: integer - description: "Скидка,\_%" - example: 30 - editableSizePrice: - description: "Можно ли устанавливать цены отдельно для разных размеров: `true`\_— можно, `false`\_— нельзя. Эта возможность зависит от категории товара\n" - type: boolean - example: true - SizeGood: - type: object - description: "Информация о\_размере" - properties: - nmID: - type: integer - example: 123 - description: Артикул Wildberries - sizeID: - description: "ID размера. Можно получить с помощью метода [Получение списка товаров по\_артикулам](./#tag/Spiski-tovarov/paths/~1api~1v2~1list~1goods~1filter/get), поле `sizeID`. В методах контента это поле `chrtID`" - type: integer - example: 98989887 - vendorCode: - type: string - example: '34552332' - description: Артикул продавца - price: - type: integer - example: 25000 - description: Цена - currencyIsoCode4217: - type: string - description: Валюта, по стандарту ISO 4217 - example: RUB - discountedPrice: - type: number - example: 14250 - description: "Цена со\_скидкой" - discount: - description: "Скидка,\_%" - type: integer - example: 43 - techSizeName: - description: Размер товара - type: string - example: '42' - editableSizePrice: - description: "Можно ли устанавливать цены отдельно для разных размеров: `true`\_— можно, `false`\_— нельзя. Эта возможность зависит от категории товара\n" - type: boolean - example: true - GoodBufferHistory: - type: object - properties: - nmID: - type: integer - example: 544833232 - description: Артикул Wildberries - vendorCode: - type: string - example: '34552332' - description: Артикул продавца - sizeID: - type: integer - example: 54483342 - description: ID размера. В методах контента это поле `chrtID` - techSizeName: - type: string - example: XXL - description: Размер - price: - type: integer - example: 1500 - description: Цена - currencyIsoCode4217: - type: string - example: RUB - description: Валюта, по стандарту ISO 4217 - discount: - type: integer - example: 25 - description: "Скидка,\_%" - status: - $ref: '#/components/schemas/GoodStatusBuffer' - errorText: - type: string - example: null - description: Текст ошибки - GoodHistory: - type: object - properties: - nmID: - type: integer - example: 544833232 - description: Артикул Wildberries - vendorCode: - type: string - example: '34552332' - description: Артикул продавца - sizeID: - type: integer - example: 54483342 - description: ID размера. В методах контента это поле `chrtID` - techSizeName: - type: string - example: '42' - description: Размер - price: - type: integer - example: 1500 - description: Цена - currencyIsoCode4217: - type: string - example: RUB - description: Валюта, по стандарту ISO 4217 - discount: - type: integer - example: 25 - description: "Скидка,\_%" - status: - $ref: '#/components/schemas/GoodStatus' - errorText: - type: string - example: The product is in quarantine - description: "Текст ошибки\n\n
\n

Ошибка The product is in quarantine возникает, если новая цена со скидкой хотя бы в\_3 раза меньше старой. Вы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина в\_личном кабинете

\n
\n" - SupplierTaskMetadata: - properties: - uploadID: - type: integer - example: 395643565 - description: ID загрузки - status: - $ref: '#/components/schemas/TaskStatus' - uploadDate: - $ref: '#/components/schemas/Date' - activationDate: - $ref: '#/components/schemas/Date1' - overAllGoodsNumber: - description: Всего товаров - type: integer - successGoodsNumber: - description: Товаров без ошибок - type: integer - SupplierTaskMetadataBuffer: - properties: - uploadID: - type: integer - example: 395643565 - description: ID загрузки - status: - $ref: '#/components/schemas/TaskStatusBuffer' - uploadDate: - $ref: '#/components/schemas/Date' - activationDate: - $ref: '#/components/schemas/Date1' - overAllGoodsNumber: - description: Всего товаров - type: integer - example: 100 - successGoodsNumber: - description: Товаров без ошибок (0, потому что загрузка в обработке) - type: integer - example: 0 - Date: - type: string - example: '2022-08-21T22:00:13+02:00' - format: date - pattern: YYYY-MM-DDTHH:MM:SSZ - description: Дата и время, когда загрузка создана - Date1: - type: string - example: '2022-08-21T22:00:13+02:00' - format: date - pattern: YYYY-MM-DDTHH:MM:SSZ - description: "Дата и время, когда загрузка отправляется в\_обработку" - TaskStatus: - description: "Статус загрузки: \n * `3`\_— обработана, в товарах нет ошибок, цены и скидки обновились\n * `4`\_— отменена\n * `5`\_— обработана, но в\_товарах есть ошибки. Для товаров без ошибок цены и скидки обновились, а ошибки в\_остальных товарах можно получить с\_помощью метода [Детализация обработанной загрузки](#tag/Istoriya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get)\n * `6`\_— обработана, но\_во всех товарах есть ошибки. Их тоже можно получить с\_помощью метода [Детализация обработанной загрузки](#tag/Istoriya-zagruzok/paths/~1api~1v2~1history~1goods~1task/get)\n" - type: integer - example: 3 - TaskStatusBuffer: - description: "Статус загрузки: `1`\_— в обработке\n" - type: integer - example: 1 - GoodStatus: - description: "Статус товара: \n * `2`\_— товар без ошибок, цена и/или скидка обновилась\n * `3`\_— есть ошибки, данные не обновились\n" - type: integer - example: 1 - GoodStatusBuffer: - description: "Статус товара: `1`\_— в обработке\n" - type: integer - example: 1 - models.AcceptanceCoefficient: - type: object - properties: - date: - type: string - description: Дата начала действия коэффициента - coefficient: - type: number - description: | - Коэффициент приёмки: - - `-1` — поставка недоступна - - `0` — бесплатная поставка - - от `1` — множитель стоимости приёмки - warehouseID: - type: integer - description: ID склада. По нему можно получить [информацию о складе](./#tag/Informaciya-dlya-formirovaniya-postavok/paths/~1api~1v1~1warehouses/get) - warehouseName: - type: string - description: Название склада - boxTypeName: - type: string - description: | - Тип поставки: - - `Короба` - - `Монопаллеты` - - `Суперсейф` - - `QR-поставка с коробами` - boxTypeID: - type: integer - description: | - ID типа поставки: - - `2` — Короба - - `5` — Монопаллеты - - `6` — Суперсейф -
Для типа поставки **QR-поставка с коробами** поле не возвращается - models.WarehousesResultItems: - type: object - properties: - ID: - type: integer - description: ID склада - name: - type: string - description: Название склада - address: - type: string - description: Адрес склада - workTime: - type: string - description: Режим работы склада - acceptsQr: - type: boolean - description: | - Принимает ли склад QR-поставки: - - `true` — да - - `false` — нет - example: - ID: 210515 - name: Вёшки - address: Липкинское шоссе, 2-й километр, вл1с1, посёлок Вёшки, городской округ Мытищи, Московская область - workTime: 24/7 - acceptsQR: false - models.Good: - type: object - properties: - quantity: - type: integer - description: | - Суммарное количество товаров, планируемых для поставки. Максимум 999999 - minimum: 1 - maximum: 999999 - barcode: - type: string - description: Баркод из карточки товара - models.ErrorModel: - type: object - properties: - status: - type: integer - description: HTTP статус-код - title: - type: string - description: ID ошибки - detail: - type: string - description: Описание ошибки - requestID: - type: string - description: ID запроса - origin: - type: string - description: Сервис, вернувший ошибку - models.OptionsResultModel: - type: object - properties: - result: - type: array - items: + contacts: + type: array + items: + type: object + properties: + comment: + type: string + nullable: false + description: Comment + example: Иванов Иван Иванович. Звонить с 10 до 21 часа. + maxLength: 1000 + phone: + type: string + nullable: false + description: Phone number + example: '+79998887766' + StoreContactRequestBody: type: object + description: Seller's warehouse contacts properties: - barcode: - type: string - description: Баркод из карточки товара - error: - type: object - description: Данные ошибки. При наличии - properties: - title: - type: string - description: ID ошибки - detail: - type: string - description: Описание ошибки - isError: - type: boolean - description: | - Наличие ошибки: - - `true` — ошибка есть - - Поля нет — ошибка отсутствует - warehouses: - type: array - nullable: true - description: Список складов. При наличии ошибки будет `null` - items: - type: object - properties: - warehouseID: - type: integer - description: ID склада. По нему можно получить [информацию о складе](./#tag/Informaciya-dlya-formirovaniya-postavok/paths/~1api~1v1~1warehouses/get) - canBox: - type: boolean - description: | - Тип упаковки **Короб**: - - `true` — доступен - - `false` — недоступен - canMonopallet: - type: boolean - description: | - Тип упаковки **Монопаллета**: - - `true` — доступен - - `false` — недоступен - canSupersafe: - type: boolean - description: | - Тип упаковки **Суперсейф**: - - `true` — доступен - - `false` — недоступен - requestID: - type: string - description: ID запроса при наличии ошибок - PassOffice: - type: object - description: Данные о складе, для которого требуется пропуск - properties: - name: - type: string - nullable: false - description: Название - example: Коледино - address: - type: string - nullable: false - description: Адрес - example: г. Подольск, д. Коледино, ул. Троицкая - id: - type: integer - format: int64 - nullable: false - description: ID - example: 1 - Error: - type: object - nullable: false - properties: - code: - type: string - description: Код ошибки - nullable: false - message: - type: string - description: Описание ошибки - nullable: false - data: - type: object - description: Дополнительные данные, обогащающие ошибку - nullable: true - error: - type: string - Next: - type: integer - format: int64 - nullable: false - description: Параметр пагинации. Содержит значение, которое необходимо указать в запросе для получения следующего пакета данных - Supply: - type: object - properties: - id: - type: string - nullable: false - description: Идентификатор поставки - example: WB-GI-1234567 - done: - type: boolean - nullable: false - description: Флаг закрытия поставки - createdAt: - type: string - format: date-time - nullable: false - description: Дата создания поставки (RFC3339) - example: '2022-05-04T07:56:29Z' - closedAt: - type: string - format: date-time - nullable: false - description: Дата закрытия поставки (RFC3339) - example: '2022-05-04T07:56:29Z' - scanDt: - type: string - nullable: false - format: date-time - description: Дата скана поставки (RFC3339) - example: '2022-05-04T07:56:29Z' - name: - type: string - nullable: false - description: Наименование поставки - example: Тестовая поставка - cargoType: - type: integer - nullable: false - description: | -
Тип поставки:
0 - признак отсутствует
1 - обычная
2 - СГТ (Содержит сверхгабаритные товары)
3 - КГТ (Содержит крупногабаритные товары). Не используется на данный момент.
- enum: - - 0 - - 1 - - 2 - - 3 - Order: - type: object - properties: - id: - type: integer - format: int64 - nullable: false - description: Идентификатор сборочного задания в Маркетплейсе - example: 13833711 - rid: - type: string - nullable: false - description: Идентификатор сборочного задания в системе Wildberries - example: f884001e44e511edb8780242ac120002 - createdAt: - type: string - format: date-time - nullable: false - description: Дата создания сборочного задания (RFC3339) - example: '2022-05-04T07:56:29Z' - warehouseId: - type: integer - nullable: false - description: Идентификатор склада продавца, на который поступило сборочное задание - example: 658434 - supplyId: - type: string - description: Идентификатор поставки. Возвращается, если заказ закреплён за поставкой - offices: - type: array - nullable: true - description: Список офисов, куда следует привезти товар - items: - type: string - example: Калуга - address: - type: object - nullable: true - description: Детализованный адрес покупателя для доставки (если применимо). Некоторые из полей могут прийти пустыми из-за специфики адреса - properties: - fullAddress: - description: Адрес доставки. - type: string - example: Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42 - province: - type: string - nullable: false - description: Область - example: Челябинская область - deprecated: true - area: - type: string - nullable: false - description: Район - example: Челябинск - deprecated: true - city: - type: string - nullable: false - description: Город - example: Город - deprecated: true - street: - type: string - nullable: false - description: Улица - example: 51-я улица Арабкира - deprecated: true - home: - type: string - nullable: false - description: Номер дома - example: 10А - deprecated: true - flat: - type: string - nullable: false - description: Номер квартиры - example: '42' - deprecated: true - entrance: - type: string - nullable: false - description: Подъезд - example: '3' - deprecated: true - longitude: - type: number - format: float64 - nullable: false - description: Координата долготы - example: 44.519068 - latitude: - type: number - format: float64 - nullable: false - description: Координаты широты - example: 40.20192 - user: - type: object - nullable: true - description: Информация о покупателе (только для доставки силами продавца) - properties: - fio: - type: string - nullable: false - description: ФИО - phone: - type: string - nullable: false - description: Номер телефона - skus: - type: array - nullable: false - description: Массив баркодов товара - items: - type: string - example: '6665956397512' - price: - type: integer - nullable: false - description: Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. - convertedPrice: - type: integer - nullable: false - description: Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. - currencyCode: - type: integer - nullable: false - description: Код валюты продажи (ISO 4217) - convertedCurrencyCode: - type: integer - nullable: false - description: Код валюты страны продавца (ISO 4217) - orderUid: - type: string - description: Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID - deliveryType: - type: string - nullable: false - description: | -
-
Тип доставки:
-
fbs - доставка на склад Wildberries
-
dbs - доставка силами продавца
-
wbgo - доставка курьером WB
-
edbs - экспресс-доставка силами продавца
-
- enum: - - dbs - - edbs - - fbs - - wbgo - nmId: - type: integer - nullable: false - description: Артикул WB - chrtId: - type: integer - nullable: false - description: Идентификатор размера товара в системе Wildberries - article: - type: string - nullable: false - description: Артикул продавца - example: one-ring-7548 - colorCode: - type: string - nullable: false - description: Код цвета (только для колеруемых товаров) - example: RAL 3017 - cargoType: - type: integer - nullable: false - description: | -
Тип товара:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
- enum: - - 1 - - 2 - - 3 - OrderNew: - type: object - properties: - id: - type: integer - format: int64 - nullable: false - description: Идентификатор сборочного задания в Маркетплейсе - example: 13833711 - rid: - type: string - nullable: false - description: Идентификатор сборочного задания в системе Wildberries - example: f884001e44e511edb8780242ac120002 - createdAt: - type: string - format: date-time - nullable: false - description: Дата создания сборочного задания (RFC3339) - example: '2022-05-04T07:56:29Z' - warehouseId: - type: integer - nullable: false - description: Идентификатор склада продавца, на который поступило сборочное задание - example: 658434 - offices: - type: array - nullable: true - description: Список офисов, куда следует привезти товар - items: - type: string - example: Калуга - address: - type: object - nullable: true - description: Детализованный адрес покупателя для доставки (если применимо). Некоторые из полей могут прийти пустыми из-за специфики адреса - properties: - fullAddress: - description: Адрес доставки. - type: string - example: Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42 - province: - type: string - nullable: false - description: Область - example: Челябинская область - deprecated: true - area: - type: string - nullable: false - description: Район - example: Челябинск - deprecated: true - city: - type: string - nullable: false - description: Город - example: Город - deprecated: true - street: - type: string - nullable: false - description: Улица - example: 51-я улица Арабкира - deprecated: true - home: - type: string - nullable: false - description: Номер дома - example: 10А - deprecated: true - flat: - type: string - nullable: false - description: Номер квартиры - example: '42' - deprecated: true - entrance: - type: string - nullable: false - description: Подъезд - example: '3' - deprecated: true - longitude: - type: number - format: float64 - nullable: false - description: Координата долготы - example: 44.519068 - latitude: - type: number - format: float64 - nullable: false - description: Координаты широты - example: 40.20192 - requiredMeta: - description: | - Перечень метаданных, которые необходимо добавить в сборочное задание.
На данный момент обязательным к добавлению является только UIN, при его наличии в перечне. - type: array - items: - type: string - example: - - uin - user: - type: object - nullable: true - description: Информация о покупателе (только для доставки силами продавца) - properties: - fio: - type: string - nullable: false - description: ФИО - phone: - type: string - nullable: false - description: Номер телефона - skus: - type: array - nullable: false - description: Массив баркодов товара - items: - type: string - example: '6665956397512' - price: - type: integer - nullable: false - description: Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. - convertedPrice: - type: integer - nullable: false - description: Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. - currencyCode: - type: integer - nullable: false - description: Код валюты продажи (ISO 4217) - convertedCurrencyCode: - type: integer - nullable: false - description: Код валюты страны продавца (ISO 4217) - orderUid: - type: string - description: Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID - deliveryType: - type: string - nullable: false - description: | -
-
Тип доставки:
-
fbs - доставка на склад Wildberries
-
dbs - доставка силами продавца
-
edbs - экспресс-доставка силами продавца
-
wbgo - доставка курьером WB
-
- enum: - - dbs - - fbs - - edbs - - wbgo - nmId: - type: integer - nullable: false - description: Артикул WB - chrtId: - type: integer - nullable: false - description: Идентификатор размера товара в системе Wildberries - article: - type: string - nullable: false - description: Артикул продавца - example: one-ring-7548 - colorCode: - type: string - nullable: false - description: Код цвета (только для колеруемых товаров) - example: RAL 3017 - cargoType: - type: integer - nullable: false - description: | -
Тип товара:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
- enum: - - 1 - - 2 - - 3 - SupplyOrder: - type: object - properties: - id: - type: integer - format: int64 - nullable: false - description: Идентификатор сборочного задания в Маркетплейсе - example: 13833711 - rid: - type: string - nullable: false - description: Идентификатор сборочного задания в системе Wildberries - example: f884001e44e511edb8780242ac120002 - createdAt: - type: string - format: date-time - nullable: false - description: Дата создания сборочного задания (RFC3339) - example: '2022-05-04T07:56:29Z' - warehouseId: - type: integer - nullable: false - description: Идентификатор склада продавца, на который поступило сборочное задание - example: 658434 - offices: - type: array - nullable: true - description: Список офисов, куда следует привезти товар - items: - type: string - example: Калуга - user: - type: object - nullable: true - description: Информация о покупателе (только для доставки силами продавца) - properties: - fio: - type: string - nullable: false - description: ФИО - phone: - type: string - nullable: false - description: Номер телефона - skus: - type: array - nullable: false - description: Массив баркодов товара - items: - type: string - example: '6665956397512' - price: - type: integer - nullable: false - description: Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. - convertedPrice: - type: integer - nullable: false - description: Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. - currencyCode: - type: integer - nullable: false - description: Код валюты продажи (ISO 4217) - convertedCurrencyCode: - type: integer - nullable: false - description: Код валюты страны продавца (ISO 4217) - orderUid: - type: string - description: Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID - nmId: - type: integer - nullable: false - description: Артикул WB - chrtId: - type: integer - nullable: false - description: Идентификатор размера товара в системе Wildberries - article: - type: string - nullable: false - description: Артикул продавца - example: one-ring-7548 - colorCode: - type: string - nullable: false - description: Код цвета (только для колеруемых товаров) - example: RAL 3017 - cargoType: - type: integer - nullable: false - description: | -
Тип товара:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
- enum: - - 1 - - 2 - - 3 - SupplyTrbx: - type: object - properties: - id: - description: ID короба. - type: string - example: WB-TRBX-1234567 - orders: - type: array - nullable: false - description: Массив идентификаторов заказа. - items: - type: integer - example: 1234567 - TrbxStickers: - type: object - properties: - barcode: - type: string - minLength: 1 - description: Закодированное значение этикетки. - example: $WBMP:1:123:1234567 - file: - type: string - format: byte - minLength: 1 - description: Полное представление этикетки в заданном формате. (кодировка base64) - example: U3dhZ2dlciByb2Nrcw== - Office: - type: object - description: Данные о складе WB - properties: - address: - type: string - nullable: false - description: Адрес - example: ул. Троицкая, Подольск, Московская обл. - name: - type: string - nullable: false - description: Название - example: Москва (Коледино) - city: - type: string - nullable: false - description: Город - example: Москва - id: - type: integer - format: int64 - nullable: false - description: ID - example: 15 - longitude: - type: number - format: float64 - nullable: false - description: Долгота - example: 55.386871 - latitude: - type: number - format: float64 - nullable: false - description: Широта - example: 37.588898 - cargoType: - description: | -
Тип товара, который принимает склад:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
- type: integer - enum: - - 1 - - 2 - - 3 - example: 1 - deliveryType: - type: integer - description: | -
-
Тип доставки, который принимает склад:
-
1 - доставка на склад Wildberries
-
2 - доставка силами продавца
-
3 - доставка курьером WB
-
- enum: - - 1 - - 2 - - 3 - example: 1 - selected: - type: boolean - nullable: false - description: Признак того, что склад уже выбран продавцом - Warehouse: - type: object - description: Данные о складе продавца - properties: - name: - type: string - nullable: false - description: Название склада продавца - example: ул. Троицкая, Подольск, Московская обл. - officeId: - type: integer - format: int64 - nullable: false - description: ID склада WB - example: 15 - id: - type: integer - format: int64 - nullable: false - description: ID склада продавца - example: 1 - cargoType: - description: | -
Тип товара, который принимает склад:
1 - обычный
2 - СГТ (Сверхгабаритный товар)
3 - КГТ (Крупногабаритный товар). Не используется на данный момент.
- type: integer - enum: - - 1 - - 2 - - 3 - example: 1 - deliveryType: - type: integer - description: | -
-
Тип доставки, который принимает склад:
-
1 - доставка на склад Wildberries
-
2 - доставка силами продавца
-
3 - доставка курьером WB
-
- enum: - - 1 - - 2 - - 3 - example: 1 - Meta: - type: object - description: Метаданные заказа - properties: - imei: - type: string - nullable: true - description: IMEI - example: 123456789012345 - uin: - type: string - nullable: true - description: УИН - example: 1234567890123456 - gtin: - type: string - nullable: true - description: GTIN - example: 1234567890123 - sgtin: - type: string - nullable: true - description: КиЗ (Маркировка честного знака) - example: 1234567890123456 - Pass: - type: object - description: Данные о пропуске продавца - properties: - firstName: - type: string - nullable: false - description: Имя водителя - example: Александр - dateEnd: - type: string - nullable: false - description: Дата окончания действия пропуска - example: {} - lastName: - type: string - nullable: false - description: Фамилия водителя - example: Петров - carModel: - type: string - nullable: false - description: Марка машины - example: Lamborghini - carNumber: - type: string - nullable: false - description: Номер машины - example: A456BC123 - officeName: - type: string - nullable: false - description: Название склада - example: Коледино - officeAddress: - type: string - nullable: false - description: Адрес склада - example: г. Подольск, д. Коледино, ул. Троицкая - officeId: - type: integer - format: int64 - nullable: false - description: ID склада - example: 15 - id: - type: integer - format: int64 - nullable: false - description: ID пропуска - example: 1 - DetailReportItem: - type: object - properties: - realizationreport_id: - example: 1234567 - type: integer - description: Номер отчёта - date_from: - example: '2022-10-17T00:00:00Z' - type: string - format: date-time - description: Дата начала отчётного периода - date_to: - example: '2022-10-23T00:00:00Z' - type: string - format: date-time - description: Дата конца отчётного периода - create_dt: - example: '2022-10-24T14:40:32' - type: string - format: date-time - description: Дата формирования отчёта - currency_name: - example: руб - type: string - description: Валюта отчёта - suppliercontract_code: - example: null - type: object - description: Договор - rrd_id: - example: 1232610467 - type: integer - description: Номер строки - gi_id: - example: 123456 - type: integer - description: Номер поставки - subject_name: - example: Мини-печи - type: string - description: Предмет - nm_id: - example: 1234567 - type: integer - description: Артикул WB - brand_name: - example: BlahBlah - type: string - description: Бренд - sa_name: - example: MAB123 - type: string - description: Артикул продавца - ts_name: - example: '0' - type: string - description: Размер - barcode: - example: '1231312352310' - type: string - description: Баркод - doc_type_name: - example: Продажа - type: string - description: Тип документа - quantity: - type: integer - example: 1 - description: Количество - retail_price: - example: 1249 - type: number - description: Цена розничная - retail_amount: - example: 367 - type: number - description: Сумма продаж (возвратов) - sale_percent: - example: 68 - type: integer - description: Согласованная скидка - commission_percent: - example: 0.1324 - type: number - description: Процент комиссии - office_name: - example: Коледино - type: string - description: Склад - supplier_oper_name: - example: Продажа - type: string - description: Обоснование для оплаты - order_dt: - example: '2022-10-13T00:00:00Z' - type: string - format: date-time - description: Дата заказа.
Присылается с явным указанием часового пояса - sale_dt: - example: '2022-10-20T00:00:00Z' - type: string - format: date-time - description: Дата продажи.
Присылается с явным указанием часового пояса - rr_dt: - example: '2022-10-20T00:00:00Z' - type: string - format: date-time - description: Дата операции.
Присылается с явным указанием часового пояса - shk_id: - example: 1239159661 - type: integer - description: Штрих-код - retail_price_withdisc_rub: - example: 399.68 - type: number - description: Цена розничная с учетом согласованной скидки - delivery_amount: - example: 0 - type: integer - description: Количество доставок - return_amount: - example: 0 - type: integer - description: Количество возвратов - delivery_rub: - example: 0 - type: number - description: Стоимость логистики - gi_box_type_name: - example: Монопаллета - type: string - description: Тип коробов - product_discount_for_report: - example: 399.68 - type: number - description: Согласованный продуктовый дисконт - supplier_promo: - example: 0 - type: number - description: Промокод - rid: - example: 123722249253 - type: integer - description: Уникальный идентификатор заказа - ppvz_spp_prc: - example: 0.1581 - type: number - description: Скидка постоянного покупателя - ppvz_kvw_prc_base: - example: 0.15 - type: number - description: Размер кВВ без НДС, % базовый - ppvz_kvw_prc: - example: -0.0081 - type: number - description: Итоговый кВВ без НДС, % - sup_rating_prc_up: - type: number - description: Размер снижения кВВ из-за рейтинга - is_kgvp_v2: - type: number - description: Размер снижения кВВ из-за акции - ppvz_sales_commission: - example: -3.74 - type: number - description: Вознаграждение с продаж до вычета услуг поверенного, без НДС - ppvz_for_pay: - example: 376.99 - type: number - description: К перечислению продавцу за реализованный товар - ppvz_reward: - example: 0 - type: number - description: Возмещение за выдачу и возврат товаров на ПВЗ - acquiring_fee: - example: 14.89 - type: number - description: | - Возмещение издержек по эквайрингу.
Издержки WB за услуги эквайринга: вычитаются из вознаграждения WB и не влияют на доход продавца. - acquiring_bank: - example: Тинькофф - type: string - description: Наименование банка-эквайера - ppvz_vw: - example: -3.74 - type: number - description: Вознаграждение WB без НДС - ppvz_vw_nds: - example: -0.75 - type: number - description: НДС с вознаграждения WB - ppvz_office_id: - example: 105383 - type: integer - description: Номер офиса - ppvz_office_name: - example: Пункт самовывоза (ПВЗ) - type: string - description: Наименование офиса доставки - ppvz_supplier_id: - example: 186465 - type: integer - description: Номер партнера - ppvz_supplier_name: - example: ИП Жасмин - type: string - description: Партнер - ppvz_inn: - example: '010101010101' - type: string - description: ИНН партнера - declaration_number: - example: '' - type: string - description: Номер таможенной декларации - bonus_type_name: - example: Штраф МП. Невыполненный заказ (отмена клиентом после недовоза) - type: string - description: Обоснование штрафов и доплат.
Поле будет в ответе при наличии значения - sticker_id: - example: '1964038895' - type: string - description: Цифровое значение стикера, который клеится на товар в процессе сборки заказа по схеме "Маркетплейс" - site_country: - example: RU - type: string - description: Страна продажи - penalty: - example: 231.35 - type: number - description: Штрафы - additional_payment: - example: 0 - type: number - description: Доплаты - rebill_logistic_cost: - example: 1.349 - type: number - description: Возмещение издержек по перевозке. Поле будет в ответе при наличии значения - rebill_logistic_org: - example: ИП Иванов Иван Иванович(123456789012) - type: string - description: Организатор перевозки. Поле будет в ответе при наличии значения - kiz: - example: "0102900000376311210G2CIS?ehge)S\x1D91002A\x1D92F9Qof4FDo/31Icm14kmtuVYQzLypxm3HWkC1vQ/+pVVjm1dNAth1laFMoAGn7yEMWlTjxIe7lQnJqZ7TRZhlHQ==" - type: string - description: Код маркировки.
Поле будет в ответе при наличии значения - storage_fee: - type: number - description: Стоимость хранения - example: 12647.29 - deduction: - type: number - description: Прочие удержания/выплаты - example: 6354 - acceptance: - type: number - description: Стоимость платной приёмки - example: 865 - srid: - example: 0f1c3999172603062979867564654dac5b702849 - type: string - description: | - Уникальный идентификатор заказа. - - Примечание для использующих API Marketplace: `srid` равен `rid` в ответах методов сборочных заданий. - report_type: - type: integer - description: "Тип отчёта:\n\n * `1`\_— стандартный\n * `2`\_— для уведомления о\_выкупе\n" - example: 1 - IncomesItem: - type: object - properties: - incomeId: - type: integer - description: Номер поставки - number: - type: string - maxLength: 40 - description: Номер УПД - date: - type: string - format: date - description: Дата поступления. Если часовой пояс не указан, то берется Московское время UTC+3. - lastChangeDate: - type: string - format: date-time - description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе. Если часовой пояс не указан, то берется Московское время UTC+3. - supplierArticle: - type: string - maxLength: 75 - description: Артикул продавца - techSize: - type: string - maxLength: 30 - description: Размер товара (пример S, M, L, XL, 42, 42-43) - barcode: - type: string - maxLength: 30 - description: Бар-код - quantity: - type: integer - description: Количество - totalPrice: - type: number - description: Цена из УПД - dateClose: - type: string - format: date - description: Дата принятия (закрытия) в WB. Если часовой пояс не указан, то берется Московское время UTC+3 - warehouseName: - type: string - maxLength: 50 - description: Название склада - nmId: - type: integer - description: Артикул WB - status: - type: string - maxLength: 50 - enum: - - Принято - description: Текущий статус поставки - StocksItem: - type: object - properties: - lastChangeDate: - type: string - format: date-time - description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе. Если часовой пояс не указан, то берется Московское время (UTC+3) - warehouseName: - type: string - maxLength: 50 - description: Название склада - supplierArticle: - type: string - maxLength: 75 - description: Артикул продавца - nmId: - type: integer - description: Артикул WB - barcode: - type: string - maxLength: 30 - description: Баркод - quantity: - type: integer - description: Количество, доступное для продажи (сколько можно добавить в корзину) - inWayToClient: - type: integer - description: В пути к клиенту - inWayFromClient: - type: integer - description: В пути от клиента - quantityFull: - type: integer - description: Полное (непроданное) количество, которое числится за складом (= `quantity` + в пути) - category: - type: string - maxLength: 50 - description: Категория - subject: - type: string - maxLength: 50 - description: Предмет - brand: - type: string - maxLength: 50 - description: Бренд - techSize: - type: string - maxLength: 30 - description: Размер - Price: - type: number - description: Цена - Discount: - type: number - description: Скидка - isSupply: - type: boolean - description: Договор поставки (внутренние технологические данные) - isRealization: - type: boolean - description: Договор реализации (внутренние технологические данные) - SCCode: - type: string - maxLength: 50 - description: Код контракта (внутренние технологические данные) - OrdersItem: - type: object - properties: - date: - type: string - format: date-time - description: Дата и время заказа. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берется Московское время (UTC+3). - lastChangeDate: - type: string - format: date-time - description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берется Московское время (UTC+3). - warehouseName: - type: string - maxLength: 50 - description: Склад отгрузки - countryName: - type: string - maxLength: 200 - description: Страна - oblastOkrugName: - type: string - maxLength: 200 - description: Округ - regionName: - type: string - maxLength: 200 - description: Регион - supplierArticle: - type: string - maxLength: 75 - description: Артикул продавца - nmId: - type: integer - description: Артикул WB - barcode: - type: string - maxLength: 30 - description: Баркод - category: - type: string - maxLength: 50 - description: Категория - subject: - type: string - maxLength: 50 - description: Предмет - brand: - type: string - maxLength: 50 - description: Бренд - techSize: - type: string - maxLength: 30 - description: Размер товара - incomeID: - type: integer - description: Номер поставки - isSupply: - type: boolean - description: Договор поставки - isRealization: - type: boolean - description: Договор реализации - totalPrice: - type: number - description: Цена без скидок - discountPercent: - type: integer - description: Скидка продавца - spp: - type: number - description: Скидка WB - finishedPrice: - type: number - description: Цена с учетом всех скидок, кроме суммы по WB Кошельку - priceWithDisc: - type: number - description: Цена со скидкой продавца (= `totalPrice` * (1 - `discountPercent`/100)) - isCancel: - type: boolean - description: Отмена заказа. true - заказ отменен - cancelDate: - type: string - format: date-time - description: Дата и время отмены заказа. Если заказ не был отменен, то "0001-01-01T00:00:00".Если часовой пояс не указан, то берется Московское время UTC+3. - orderType: - type: string - description: | - Тип заказа
  • `Клиентский` — заказ, поступивший от покупателя
  • `Возврат Брака` — возврат товара продавцу
  • `Принудительный возврат` — возврат товара продавцу
  • `Возврат обезлички` — возврат товара продавцу
  • `Возврат Неверного Вложения` — возврат товара продавцу
  • `Возврат Продавца` — возврат товара продавцу
- sticker: - type: string - description: Идентификатор стикера - gNumber: - type: string - maxLength: 50 - description: Номер заказа - srid: - type: string - description: | - Уникальный идентификатор заказа.
Примечание для использующих API Маркетплейс: `srid` равен `rid` в ответах методов сборочных заданий. - SalesItem: - type: object - properties: - date: - type: string - format: date-time - description: Дата и время продажи. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берется Московское время (UTC+3). - lastChangeDate: - type: string - format: date-time - description: Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берется Московское время (UTC+3). - warehouseName: - type: string - maxLength: 50 - description: Склад отгрузки - countryName: - type: string - maxLength: 200 - description: Страна - oblastOkrugName: - type: string - maxLength: 200 - description: Округ - regionName: - type: string - maxLength: 200 - description: Регион - supplierArticle: - type: string - maxLength: 75 - description: Артикул продавца - nmId: - type: integer - description: Артикул WB - barcode: - type: string - maxLength: 30 - description: Баркод - category: - type: string - maxLength: 50 - description: Категория - subject: - type: string - maxLength: 50 - description: Предмет - brand: - type: string - maxLength: 50 - description: Бренд - techSize: - type: string - maxLength: 30 - description: Размер товара - incomeID: - type: integer - description: Номер поставки - isSupply: - type: boolean - description: Договор поставки - isRealization: - type: boolean - description: Договор реализации - totalPrice: - type: number - description: Цена без скидок - discountPercent: - type: integer - description: Скидка продавца - spp: - type: number - description: Скидка WB - paymentSaleAmount: - type: integer - description: Оплачено с WB Кошелька - forPay: - type: number - description: К перечислению продавцу - finishedPrice: - type: number - description: Фактическая цена с учетом всех скидок (к взиманию с покупателя) - priceWithDisc: - type: number - description: Цена со скидкой продавца, от которой считается сумма к перечислению продавцу `forPay` (= `totalPrice` * (1 - `discountPercent`/100)) - saleID: - type: string - maxLength: 15 - description: | - Уникальный идентификатор продажи/возврата
  • `S**********` — продажа
  • `R**********` — возврат (на склад WB)
- orderType: - type: string - description: | - Тип заказа
  • `Клиентский` — заказ, поступивший от покупателя
  • `Возврат Брака` — возврат товара продавцу
  • `Принудительный возврат` — возврат товара продавцу
  • `Возврат обезлички` — возврат товара продавцу
  • `Возврат Неверного Вложения` — возврат товара продавцу
  • `Возврат Продавца` — возврат товара продавцу
- sticker: - type: string - description: Идентификатор стикера - gNumber: - type: string - maxLength: 50 - description: Номер заказа - srid: - type: string - description: | - Уникальный идентификатор заказа.
Примечание для использующих API Маркетплейс: `srid` равен `rid` в ответах методов сборочных заданий. - responseErrorStatistics: - type: object - properties: - errors: - type: array - items: - type: string - Response429: - type: object - properties: - code: - description: '' - type: integer - message: - description: '' - type: string - example: - code: 429 - message: 07e4668e-ac2242c5c8c5-UK8XeP32NbduV too many requests with this user ID for GET /adv/v1/XXX; throttled by RL-003-XXrpm - ExciseReportRequest: - type: object - properties: - countries: - type: array - description: | - Код стран по стандарту ISO 3166-2. Чтобы получить данные по всем странам, оставьте параметр пустым - items: - type: string - enum: - - AM - - BY - - KG - - KZ - - RU - - UZ - example: - countries: - - AM - - RU - ExciseReportResponse: - type: object - properties: - response: - $ref: '#/components/schemas/models.ExciseReportResponse' - models.ExciseReportResponse: - type: object - properties: - data: - $ref: '#/components/schemas/models.ExciseReportResponseData' - models.ExciseReportResponseData: - type: array - items: - type: object - properties: - name: - type: string - description: Страна покупателя - example: Россия - price: - type: number - description: Цена товара, с НДС - example: 100 - currency_name_short: - type: string - description: Валюта - example: руб - excise_short: - type: string - description: Код маркировки - example: 0102900254680370215_Re/=lSbNiGD - barcode: - type: string - description: Баркод - example: 2038893425820 - nm_id: - type: integer - description: Артикул Wildberries - example: 169085355 - operation_type_id: - type: integer - description: | - Тип операции, если есть: - - * `1` — вывод из оборота - * `2` — возврат в оборот - example: 1 - fiscal_doc_number: - type: integer - description: Номер фискального документа (чека полного расчёта), если есть - example: 12345678 - fiscal_dt: - type: string - description: Дата фискализации (дата в чеке), если есть, `ГГГГ-ММ-ДД` - example: {} - fiscal_drive_number: - type: string - description: Номер фискального накопителя, если есть - rid: - type: integer - description: | - `Rid` - example: 606217433440 - srid: - type: string - description: | - `Srid` - example: 7513432034713632943.1.0 - ResponsePaidStorage: - type: array - items: - type: object - properties: - date: - type: string - description: Дата, за которую был расчёт или перерасчёт - logWarehouseCoef: - type: number - description: Коэффициент логистики и хранения - officeId: - type: integer - description: ID склада - warehouse: - type: string - description: Название склада - warehouseCoef: - type: number - description: Коэффициент склада - giId: - type: integer - description: ID поставки - chrtId: - type: integer - description: Идентификатор размера для этого артикула Wildberries - size: - type: string - description: Размер (`techSize` в карточке товара) - barcode: - type: string - description: Баркод - subject: - type: string - description: Предмет - brand: - type: string - description: Бренд - vendorCode: - type: string - description: Артикул продавца - nmId: - type: integer - description: Артикул Wildberries - volume: - type: number - description: Объём товара - calcType: - type: string - description: Способ расчёта - warehousePrice: - type: number - description: Сумма хранения - barcodesCount: - type: integer - description: Количество единиц товара (штук), подлежащих тарифицированию за расчётные сутки - palletPlaceCode: - type: integer - description: Код паллетоместа - palletCount: - type: number - description: Количество паллет - originalDate: - type: string - description: Если был перерасчёт, это дата первоначального расчёта. Если перерасчёта не было, совпадает с `date` - loyaltyDiscount: - type: number - description: "Скидка программы лояльности,\_₽" - tariffFixDate: - type: string - description: Дата фиксации тарифа - tariffLowerDate: - type: string - description: Дата понижения тарифа - example: - - date: '2023-10-01' - logWarehouseCoef: 0 - officeId: 507 - warehouse: Коледино - warehouseCoef: 1.7 - giId: 123456 - chrt_id: 1234567 - size: '0' - barcode: '' - subject: Маски одноразовые - brand: 1000 Каталог - vendorCode: Артикул_продавца - nmId: 1234567 - volume: 12 - calcType: 'короба: без габаритов' - warehousePrice: 7.65 - barcodesCount: 1 - palletPlaceCode: 0 - palletCount: 0 - originalDate: '2023-10-01' - loyaltyDiscount: 10 - tariffFixDate: '2023-10-01' - tariffLowerDate: '2023-11-01' - GetTasksResponse: - type: object - properties: - data: - $ref: '#/components/schemas/GetTasksResponseData' - GetTasksResponseData: - type: object - properties: - id: - type: string - description: ID задания - status: - type: string - description: | - Статус задания: - - * `new` — новое - * `processing` — обрабатывается - * `done` — отчёт готов - * `purged` — отчёт удалён - * `canceled` — отклонено - CreateTaskResponse: - type: object - properties: - data: - $ref: '#/components/schemas/CreateTaskResponseData' - CreateTaskResponseData: - type: object - properties: - taskId: - type: string - description: ID задания на генерацию - ErrorResponse: - type: object - required: - - errors - properties: - errors: - type: array - items: - type: string - responseError: - type: object - properties: - data: - type: array - items: + contacts: + type: array + maxItems: 5 + items: + type: object + properties: + comment: + type: string + nullable: false + description: Comment + example: Иванов Иван Иванович. Звонить с 10 до 21 часа. + maxLength: 1000 + phone: + type: string + nullable: false + description: | + Phone number.
Supported country codes: + - `+7` — Russia, Kazakhstan + - `+374` — Armenia + - `+375` — Belarus + - `+996` — Kyrgyzstan + example: '+79998887766' + CrossborderTurkeyClientInfo: + properties: + firstName: + type: string + description: Client's first name + example: Иван + fullName: + type: string + description: First name, Last name, Patronymic + example: Андреев Иван Васильевич + lastName: + type: string + description: Client's last name + example: Андреев + middleName: + type: string + description: Client's patronymic + example: Васильевич + orderID: + type: integer + description: Order number + example: 134567 + phone: + type: string + description: Phone number for contacting the client + example: 79871234567 + phoneCode: + type: string + description: Not used + example: 0 + CrossborderTurkeyClientInfoResp: + properties: + orders: + description: Client information for cross-border orders from Turkey + items: + $ref: '#/components/schemas/CrossborderTurkeyClientInfo' + type: array + type: object + OrdersRequestAPI: + properties: + orders: + description: Orders list + items: + type: integer + type: array type: object - example: null - error: - description: Флаг ошибки - type: boolean - example: true - errorText: - description: Описание ошибки - type: string - example: Текст ошибки - additionalErrors: - description: Дополнительные ошибки - type: array - items: + example: + orders: + - 987654321 + - 123456789 + V0GetConfigCategoriesResponse: type: object properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - response401: - type: object - properties: - code: - type: integer - description: Код ошибки - example: 401 - message: - description: Описание ошибки - type: string - example: Текст ошибки - response429: - type: object - properties: - code: - type: integer - description: Код ошибки - example: 429 - message: - description: Описание ошибки - type: string - example: Текст ошибки - response429Daily: - type: object - properties: - data: - type: array - items: + id: + type: integer + description: Product category ID + name: + type: string + description: Product category name + cpm_min: + type: integer + description: Minimum allowable rate + required: + - id + - name + - cpm_min + example: + id: 760 + name: Автомобильные товары + cpm_min: 112 + V0AdvertMultiBidItem: type: object - example: null - error: - description: Флаг ошибки - type: boolean - example: true - errorText: - description: Описание ошибки - type: string - example: Превышен лимит отчётов в сутки. Максимальное количество отчётов - 20 - additionalErrors: - description: Дополнительные ошибки - type: array - example: null - items: + required: + - nm + - bid + properties: + nm: + type: integer + example: 3462354 + description: WB article + bid: + type: integer + example: 500 + description: Bid. Minimum allowable bids can be found in the response of the method for obtaining [configuration values](./promotion#tag/Sozdanie-kampanij/paths/~1adv~1v0~1config/get) + V0AdvertMultibid: type: object + required: + - advert_id + - nm_bids properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - NmReportDetailRequest: - type: object - required: - - page - - period - properties: - brandNames: - type: array - description: Название бренда - items: - type: string - example: Some - objectIDs: - type: array - description: Идентификатор предмета - items: - type: integer - format: int32 - example: 358 - tagIDs: - type: array - description: Идентификатор тега - items: - type: integer - format: int32 - example: 123 - nmIDs: - type: array - description: Артикул WB - items: - type: integer - format: int32 - example: 1234567 - timezone: - type: string - description: | - Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. - example: Europe/Moscow - period: - type: object - description: Период - properties: - begin: - description: Начало периода - type: string - format: time-date - example: {} - end: - description: Конец периода - type: string - format: time-date - example: {} - orderBy: - description: | - Параметры сортировки. - Если не указано, то по умолчанию используется значение "openCard" и сортировка по убыванию. -
-
Все виды сортировки field:
-
openCard — по открытию карточки (переход на страницу товара)
-
addToCart — по добавлениям в корзину
-
orders — по кол-ву заказов
-
avgRubPrice — по средней цене в рублях
-
ordersSumRub — по сумме заказов в рублях
-
stockMpQty — по кол-ву остатков маркетплейса шт.
-
stockWbQty — по кол-ву остатков на складе шт.
-
cancelSumRub — сумме возвратов в рублях
-
cancelCount — по кол-ву возвратов
-
buyoutCount — по кол-ву выкупов
-
buyoutSumRub — по сумме выкупов
-
- type: object - properties: - field: - description: Вид сортировки - type: string - example: ordersSumRub - mode: - description: | - `asc` — по возрастанию, `desc` — по убыванию - type: string - example: asc - page: - description: Страница - type: integer - format: int32 - example: 1 - NmReportGroupedRequest: - type: object - required: - - page - - period - properties: - objectIDs: - type: array - description: Идентификатор предмета - items: - type: integer - format: int32 - example: 358 - brandNames: - description: Название бренда - type: array - items: - type: string - example: Some - tagIDs: - description: Идентификатор тега - type: array - items: - type: integer - format: int32 - example: 123 - timezone: - description: | - Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. - type: string - example: Europe/Moscow - period: - description: Период - type: object - properties: - begin: - description: Начало периода - type: string - example: {} - end: - description: Конец периода - type: string - example: {} - orderBy: - description: | - Параметры сортировки. - Если не указано, то по умолчанию используется значение "openCard" и сортировка по убыванию. -
-
Все виды сортировки field:
-
openCard — по открытию карточки (переход на страницу товара)
-
addToCart — по добавлениям в корзину
-
orders — по кол-ву заказов
-
avgRubPrice — по средней цене в рублях
-
ordersSumRub — по сумме заказов в рублях
-
stockMpQty — по кол-ву остатков маркетплейса шт.
-
stockWbQty — по кол-ву остатков на складе шт.
-
- type: object - properties: - field: - description: Вид сортировки - type: string - example: ordersSumRub - mode: - description: | - `asc` — по возрастанию, `desc` — по убыванию - type: string - example: asc - page: - description: Страница - type: integer - format: int32 - example: 1 - NmReportDetailHistoryRequest: - type: object - required: - - nmIDs - - period - properties: - nmIDs: - description: Артикул Wildberries (максимум 20) - type: array - items: - type: integer - format: int32 - example: 1234567 - period: - description: Период - type: object - properties: - begin: - description: Начало периода - type: string - format: date - example: {} - end: - description: Конец периода - type: string - format: date - example: {} - timezone: - type: string - description: | - Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. - example: Europe/Moscow - aggregationLevel: - description: | - Тип агрегации. Если не указано, то по умолчанию используется агрегация по дням.
Доступные уровни агрегации `day`, `week` - type: string - example: day - NmReportGroupedHistoryRequest: - type: object - required: - - period - properties: - objectIDs: - description: Идентификатор предмета - type: array - items: - type: integer - format: int32 - example: 358 - brandNames: - description: Название бренда - type: array - items: - type: string - example: Some - tagIDs: - description: Идентификатор тега - type: array - items: - type: integer - format: int32 - example: 123 - period: - description: Период - type: object - properties: - begin: - description: Начало периода - type: string - format: date - example: {} - end: - description: Конец периода - type: string - format: date - example: {} - timezone: - description: | - Временная зона.
Если не указано, то по умолчанию используется Europe/Moscow. - type: string - example: Europe/Moscow - aggregationLevel: - description: | - Тип агрегации. Если не указано, то по умолчанию используется агрегация по дням.
Доступные уровни агрегации `day`, `week` - type: string - example: day - NmReportDetailResponse: - type: object - properties: - data: - type: object - properties: - page: - description: Страница - type: integer - format: int32 - example: 1 - isNextPage: - description: Есть ли следующая страница (false - нет, true - есть) - type: boolean - cards: - type: array - items: - type: object - properties: - nmID: - description: Артикул WB + advert_id: + type: integer + example: 6348555 + description: Campaign ID + nm_bids: + type: array + description: WB article numbers and their bids + items: + $ref: '#/components/schemas/V0AdvertMultiBidItem' + ResponseWithReturn: + type: object + properties: + total: type: integer - format: int32 - example: 1234567 - vendorCode: - description: Артикул продавца + description: Amount of the updated budget + ResponseInfoAdvert: + type: object + properties: + endTime: + description: Campaign end date + type: string + createTime: + description: Campaign create time + type: string + example: '2022-03-09T10:50:21.831623+03:00' + changeTime: + description: Campaign last update time + type: string + example: '2022-12-22T18:24:19.808701+03:00' + startTime: + description: Campaign launch date type: string - example: supplierVendor - brandName: - description: Название бренд + name: + description: Campaign name type: string - example: Some - tags: - description: Теги + params: + description: Campaign parameters type: array items: - type: object - properties: - id: - description: Идентификатор тега - type: integer - format: int32 - example: 123 - name: - description: Название тега - type: string - example: Sale - object: - description: Предмет - type: object - properties: - id: - description: Идентификатор предмета - type: integer - format: int32 - example: 447 - name: - description: Название предмета - type: string - example: Кондиционеры для волос - statistics: - description: Статистика - type: object - properties: - selectedPeriod: - description: Запрашиваемый период type: object properties: - begin: - description: Начало периода - type: string - example: {} - end: - description: Конец периода - type: string - example: {} - openCardCount: - description: Количество переходов в карточку товара - type: integer - format: int32 - example: 0 - addToCartCount: - description: Положили в корзину, штук - type: integer - format: int32 - example: 0 - ordersCount: - description: Заказали товаров, шт - type: integer - format: int32 - example: 0 - ordersSumRub: - description: Заказали на сумму, руб. - type: integer - format: int32 - example: 0 - buyoutsCount: - description: Выкупили товаров, шт. - type: integer - format: int32 - example: 0 - buyoutsSumRub: - description: Выкупили на сумму, руб. - type: integer - format: int32 - example: 0 - cancelCount: - description: Отменили товаров, шт. - type: integer - format: int32 - example: 0 - cancelSumRub: - description: Отменили на сумму, руб. - type: integer - format: int32 - example: 0 - avgPriceRub: - description: Средняя цена, руб. - type: integer - format: int32 - example: 0 - avgOrdersCountPerDay: - description: Среднее количество заказов в день, шт. - type: integer - format: int32 - example: 0 - conversions: - description: Конверсии - type: object - properties: - addToCartPercent: - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + subjectName: + description: Name of the object group (for the campaign in search and recommendations (deprecated campaign types)) + type: string + active: + description: The object group activity flag, true - active, false - inactive + type: boolean + intervals: + description: Showing hours intervals + type: array + items: + type: object + properties: + Begin: + description: Show start time + type: integer + End: + description: Show end time + type: integer + price: + description: Current price type: integer - format: int32 - example: 0 - cartToOrderPercent: - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + menuId: + description: Campaign target menu item ID (for catalogue campaign (deprecated campaign type)) type: integer - format: int32 - example: 0 - buyoutsPercent: - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + subjectId: + description: Campaign target subject ID (for search and recommendations campaigns (deprecated campaign types)) type: integer - format: int32 - example: 0 - previousPeriod: - description: Статистика за предыдущие 30 дней - type: object - properties: - begin: - type: string - description: Начало периода - example: {} - end: - type: string - description: Конец периода - example: {} - openCardCount: - description: Количество переходов в карточку товара - type: integer - format: int32 - example: 0 - addToCartCount: - description: Положили в корзину, штук - type: integer - format: int32 - example: 0 - ordersCount: - description: Заказали товаров, штук - type: integer - format: int32 - example: 1 - ordersSumRub: - description: Заказали на сумму, руб. - type: integer - format: int32 - example: 1262 - buyoutsCount: - description: Выкупили товаров, шт. - type: integer - format: int32 - example: 1 - buyoutsSumRub: - description: Выкупили на сумму, руб. - type: integer - format: int32 - example: 1262 - cancelCount: - description: Отменили товаров, штук - type: integer - format: int32 - example: 0 - cancelSumRub: - description: Отменили на сумму, руб. - type: integer - format: int32 - example: 0 - avgPriceRub: - description: Средняя цена, руб. - type: integer - format: int32 - example: 1262 - avgOrdersCountPerDay: - description: Среднее количество заказов в день, шт. - type: number - example: 0.04 - conversions: - description: Конверсии + setId: + description: Subject and gender selection ID (for product card campaign (deprecated campaign type)) + type: integer + setName: + description: Item and gender combination (for the campaign in the product card (deprecated campaign type)) + type: string + menuName: + description: Name of the menu where the campaign is placed (for a catalog campaign (deprecated campaign type)) + type: string + nms: + description: An array of campaign nomenclatures + type: array + items: + type: object + properties: + nm: + type: integer + description: WB article (`nmId`) + active: + type: boolean + description: Nomenclature status (true - active or false - inactive) + dailyBudget: + description: Daily budget; 0 if not set + type: integer + advertId: + description: Campaign ID + type: integer + example: 1234 + status: + description: | +
Campaign status:
-1 - campaign + in the process of removing
4 + - ready to start
7 - is over
8 + - refused
9 - active
11 - + paused
Campaign in the process of removing. The status means + that the campaign has been deleted and in 3-10 minutes it will disappear + from the method response. + type: integer + example: 9 + type: + description: | +
+
Type of campaign:
+
4 - campaign in catalogue (deprecated type)
+
5 - campaign in content (deprecated type)
+
6 - campaign in search (deprecated type)
+
7 - campaign on main page recommendations (deprecated type)
+ type: integer + example: 4 + paymentType: + type: string + description: | + Payment model: + - `cpm` — for displays + searchPluseState: + type: boolean + description: | + Fixed phrase activity: + - `false` — inactive + - `true` — active + ResponseInfoAdvertType8: + type: object + properties: + endTime: + description: Campaign end date + type: string + format: date-time + createTime: + description: Campaign create time + type: string + format: date-time + changeTime: + description: Campaign last update time + type: string + format: date-time + startTime: + description: Campaign launch date + type: string + format: date-time + autoParams: + type: object + properties: + subject: + description: Promoted subject type: object properties: - addToCartPercent: - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) - type: integer - format: int32 - example: 0 - cartToOrderPercent: - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) - type: integer - format: int32 - example: 0 - buyoutsPercent: - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) - type: integer - format: int32 - example: 100 - periodComparison: - description: Сравнение двух периодов, в процентах - type: object - properties: - openCardDynamics: - description: Динамика переходов в карточку товара - type: integer - format: int32 - example: 0 - addToCartDynamics: - description: Динамика добавлений в корзину - type: integer - format: int32 - example: 0 - ordersCountDynamics: - description: Динамика количества заказов - type: integer - format: int32 - example: -100 - ordersSumRubDynamics: - description: Динамика суммы заказов, рублей - type: integer - format: int32 - example: -100 - buyoutsCountDynamics: - description: Динамика выкупов, штук - type: integer - format: int32 - example: -100 - buyoutsSumRubDynamics: - description: Динамика суммы выкупов, рублей - type: integer - format: int32 - example: -100 - cancelCountDynamics: - description: Динамика отмен товаров, штук - type: integer - format: int32 - example: 0 - cancelSumRubDynamics: - description: Динамика сумм отмен товаров, рублей - type: integer - format: int32 - example: 0 - avgOrdersCountPerDayDynamics: - type: integer - format: int32 - example: 0 - description: Динамика среднего количества заказов в день - avgPriceRubDynamics: - type: integer - format: int32 - example: -100 - description: Динамика средней цены на товары. Учитываются скидки для акций и WB скидка. - conversions: - description: Конверсии + id: + description: Subject ID + type: integer + name: + description: Subject name + type: string + sets: + description: Internal (system) entity (gender + product) + type: array + items: + type: object + properties: + id: + description: Set ID + type: integer + name: + description: Set name + type: string + menus: + type: array + items: + type: object + description: The menu where the campaign is placed + properties: + id: + description: Menu ID + type: integer + name: + description: Menu name + type: string + active: + description: Display zones type: object properties: - addToCartPercent: - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) - type: integer - format: int32 - example: 0 - cartToOrderPercent: - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) - type: integer - format: int32 - example: 0 - buyoutsPercent: - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + carousel: + description: In content (`false` means disabled, `true` means enabled) + type: boolean + recom: + description: Recommendations on main page (`false` means disabled, `true` means enabled) + type: boolean + booster: + description: Auction (`false` means disabled, `true` means enabled) + type: boolean + nmCPM: + type: array + description: | + Nomenclature bids (WB articles) + items: + type: object + properties: + nm: + description: WB article + type: integer + cpm: + description: Bid + type: integer + nms: + description: WB articles (`nmId`) + type: array + items: type: integer - format: int32 - example: -100 - stocks: - description: Остатки - type: object - properties: - stocksMp: - description: Остатки МП, шт. (Общее количество остатков на складе продавца) - type: integer - format: int32 - example: 0 - stocksWb: - description: Остатки на складах Wildberries (Общее количество остатков на складах Wildberries) - type: integer - format: int32 - example: 0 - error: - type: boolean - description: Флаг ошибки - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: array - items: + cpm: + description: | + The bid specified when creating the campaign.
The field is relevant only for campaigns created via API. + type: integer + name: + description: Campaign name + type: string + dailyBudget: + description: Not used + type: integer + advertId: + description: Campaign ID + type: integer + status: + description: | +
Campaign status:
-1 - campaign + in the process of removing
4 - ready to run
7 - is over
8 - refused
9 - active
11 - paused
Campaign in the process of removing. The status means that the campaign has been deleted and in 3-10 minutes it will disappear from the method response. + type: integer + type: + description:
Type of campaign:
8 - automatic campaign
+ type: integer + paymentType: + type: string + description: | + Payment model: + - `cpm` — for displays + ResponseInfoAdvertType9: type: object properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - NmReportGroupedResponse: - type: object - properties: - data: - type: object - properties: - page: - description: Страница - type: integer - format: int32 - example: 1 - isNextPage: - description: Есть ли следующая страница (false - нет, true - есть) - type: boolean - groups: - type: array - items: - type: object - properties: - brandName: - description: Название бренда + endTime: + description: Campaign end date + type: string + format: date-time + createTime: + description: Campaign create time + type: string + format: date-time + changeTime: + description: Campaign last update time + type: string + format: date-time + startTime: + description: Campaign launch date + type: string + format: date-time + searchPluseState: + type: boolean + description: | + Fixed phrase activity: + - `false` — inactive + - `true` — active + name: + description: Campaign name type: string - example: Some - tags: + unitedParams: type: array items: - type: object - properties: - id: - description: Идентификатор тега - type: integer - format: int32 - example: 123 - name: - description: Название тега - type: string - example: Sale - object: - type: object - description: Предмет - properties: - id: - description: Идентификатор предмета - type: integer - format: int32 - example: 1668 - name: - type: string - example: Воски для волос - description: Название предмета - statistics: - type: object - properties: - selectedPeriod: - description: Запрашиваемый период type: object properties: - begin: - description: Начало периода - type: string - example: {} - end: - description: Конец периода - type: string - example: {} - openCardCount: - description: Количество переходов в КТ - type: integer - format: int32 - example: 0 - addToCartCount: - description: Положили в корзину, штук - type: integer - format: int32 - example: 0 - ordersCount: - description: Заказали товаров, штук - type: integer - format: int32 - example: 0 - ordersSumRub: - description: Заказали на сумму, руб. - type: integer - format: int32 - example: 0 - buyoutsCount: - description: Выкупили товаров, штук - type: integer - format: int32 - example: 0 - buyoutsSumRub: - description: Выкупили на сумму, руб. - type: integer - format: int32 - example: 0 - cancelCount: - description: Отменили товаров, штук - type: integer - format: int32 - example: 0 - cancelSumRub: - description: Отменили на сумму, руб - type: integer - format: int32 - example: 0 - avgPriceRub: - description: Средняя цена, руб. - type: integer - format: int32 - example: 0 - avgOrdersCountPerDay: - description: Среднее количество заказов в день, шт. - type: integer - format: int32 - example: 0 - conversions: - description: Конверсии - type: object - properties: - addToCartPercent: - type: integer - format: int32 - example: 0 - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) - cartToOrderPercent: - type: integer - format: int32 - example: 0 - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) - buyoutsPercent: + subject: + type: object + description: Promoted subject + properties: + id: + description: Subject ID + type: integer + name: + description: Subject name + type: string + menus: + type: array + items: + type: object + description: Menu where the campaign is placed + properties: + id: + description: Menu ID + type: integer + name: + description: Menu name + type: string + nms: + description: WB articles (`nmId`) + type: array + items: + type: integer + searchCPM: + description: Bid in Search type: integer - format: int32 - example: 0 - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) - previousPeriod: - description: Статистика за предыдущие 30 дней - type: object - properties: - begin: - description: Начало периода - type: string - example: {} - end: - description: Конец периода - type: string - example: {} - openCardCount: - description: Количество переходов в КТ - type: integer - format: int32 - example: 466 - addToCartCount: - description: Положили в корзину, штук - type: integer - format: int32 - example: 72 - ordersCount: - description: Заказали товаров, штук - type: integer - format: int32 - example: 84 - ordersSumRub: - description: Заказали на сумму, руб. - type: number - example: 127060.42 - buyoutsCount: - description: Выкупили товаров, штук - type: integer - format: int32 - example: 69 - buyoutsSumRub: - description: Выкупили на сумму, руб. - type: number - example: 104898.42 - cancelCount: - description: Отменили товаров, штук - type: integer - format: int32 - example: 13 - cancelSumRub: - description: Отменили на сумму, руб - type: integer - format: int32 - example: 0 - avgPriceRub: - description: Средняя цена, руб. - type: number - example: 1562.65 - avgOrdersCountPerDay: - description: Среднее количество заказов в день, шт. - type: number - example: 0.72 - conversions: - description: Конверсии - type: object - properties: - addToCartPercent: - type: number - example: 15.5 - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) - cartToOrderPercent: - type: number - example: 116.7 - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) - buyoutsPercent: - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) - type: number - example: 84.1 - periodComparison: - description: Сравнение двух периодов, в процентах - type: object - properties: - openCardDynamics: - description: Динамика переходов в карточку товара - type: integer - format: int32 - example: -100 - addToCartDynamics: - description: Динамика добавлений в корзину - type: integer - format: int32 - example: -100 - ordersCountDynamics: - description: Динамика количества заказов - type: integer - format: int32 - example: -100 - ordersSumRubDynamics: - description: Динамика суммы заказов, рублей - type: integer - format: int32 - example: -100 - buyoutsCountDynamics: - description: Динамика выкупов, штук - type: integer - format: int32 - example: -100 - buyoutsSumRubDynamics: - description: Динамика суммы выкупов, рублей - type: integer - format: int32 - example: -100 - cancelCountDynamics: - description: Динамика отмен товаров, штук - type: integer - format: int32 - example: 0 - cancelSumRubDynamics: - description: Динамика сумм отмен товаров, рублей - type: integer - format: int32 - example: 0 - avgOrdersCountPerDayDynamics: - type: integer - format: int32 - example: 0 - description: Динамика среднего количества заказов в день - avgPriceRubDynamics: - type: integer - format: int32 - example: -100 - description: | - Динамика средней цены на товары. Учитываются скидки для акций и WB скидка. - conversions: - description: Конверсии - type: object - properties: - addToCartPercent: - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) + catalogCPM: + description: Bid in Catalogue, if available type: integer - format: int32 - example: -100 - cartToOrderPercent: - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) + dailyBudget: + description: Not used + type: integer + advertId: + description: Campaign ID + type: integer + status: + description: | +
Campaign status:
-1 - campaign + in the process of removing
4 - ready to run
7 - is over
8 - refused
9 - active
11 - paused
Campaign in the process of removing. The status means that the campaign has been deleted and in 3-10 minutes it will disappear from the method response. + type: integer + type: + description:
Type of campaign:
9 - Auction
+ type: integer + paymentType: + type: string + description: | + Payment model: + - `cpm` — for displays + auction_multibids: + type: array + description: WB articles bids + items: + type: object + properties: + nm: + description: WB article type: integer - format: int32 - example: -100 - buyoutsPercent: - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) + cpm: + description: Bid type: integer - format: int32 - example: -100 - error: - type: boolean - description: Флаг ошибки - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: array - items: - type: object - properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - NmReportDetailHistoryResponse: - type: object - properties: - data: - type: array - items: - type: object - properties: - nmID: - type: integer - format: int32 - example: 1234567 - description: Артикул WB - imtName: - type: string - example: Наименование КТ - description: Наименование КТ - vendorCode: - type: string - example: supplierVendor - description: Артикул продавца - history: - type: array - items: - type: object - properties: - dt: - type: string - format: date - example: {} - description: Дата - openCardCount: - type: integer - format: int32 - example: 26 - description: Количество переходов в карточку товара - addToCartCount: - type: integer - format: int32 - example: 1 - description: Положили в корзину, штук - ordersCount: - type: integer - format: int32 - example: 0 - description: Заказали товаров, шт - ordersSumRub: - type: integer - format: int32 - example: 0 - description: Заказали на сумму, руб. - buyoutsCount: - type: integer - format: int32 - example: 0 - description: Выкупили товаров, шт. - buyoutsSumRub: - type: integer - format: int32 - example: 0 - description: Выкупили на сумму, руб. - buyoutPercent: - type: integer - format: int32 - example: 0 - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) - addToCartConversion: - type: number - example: 3.8 - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) - cartToOrderConversion: - type: integer - format: int32 - example: 0 - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) - error: - type: boolean - description: Флаг ошибки - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: array - items: + responseAdvError1: type: object properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - NmReportGroupedHistoryResponse: - type: object - properties: - data: - type: array - items: + error: + type: string + PromotionsGoodsList: type: object properties: - object: - description: Предмет - type: object - properties: - id: + id: type: integer - format: int32 - example: 358 - description: Идентификатор предмета - name: + example: 162579635 + description: Nomenclature ID + inAction: + type: boolean + example: true + description: | + Participates in the promotion: + - `true` — yes + - `false` — no + price: + type: number + format: float + example: 1500 + description: Current retail price + currencyCode: type: string - example: Шампуни - description: Название предмета - brandName: - type: string - example: Some - description: Название бренда - tag: - description: Тег - type: object - properties: - id: + example: RUB + description: Currency in ISO 4217 format + planPrice: + type: number + format: float + example: 1000 + description: Planned price (price during the promotion) + discount: type: integer - format: int32 - example: 123 - description: Идентификатор тега - name: - type: string - example: Sale - description: Название тега - history: - type: array - items: - type: object - properties: - dt: - type: string - format: date - example: {} - openCardCount: - type: integer - format: int32 - example: 0 - description: Количество переходов в карточку товара - addToCartCount: - type: integer - format: int32 - example: 0 - description: Положили в корзину, штук - ordersCount: - type: integer - format: int32 - example: 0 - description: Заказали товаров, шт - ordersSumRub: - type: integer - format: int32 - example: 0 - description: Заказали на сумму, руб. - buyoutsCount: - type: integer - format: int32 - example: 0 - description: Выкупили товаров, шт. - buyoutsSumRub: - type: integer - format: int32 - example: 0 - description: Выкупили на сумму, руб. - buyoutPercent: - type: integer - format: int32 - example: 0 - description: Процент выкупа, % (Какой процент посетителей, заказавших товар, его выкупили. Без учёта товаров, которые еще доставляются покупателю.) - addToCartConversion: - type: integer - format: int32 - example: 0 - description: Конверсия в корзину, % (Какой процент посетителей, открывших карточку товара, добавили товар в корзину) - cartToOrderConversion: - type: integer - format: int32 - example: 0 - description: Конверсия в заказ, % (Какой процент посетителей, добавивших товар в корзину, сделали заказ) - error: - type: boolean - description: Флаг ошибки - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: array - items: - type: object - properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - BySelectedNmIDReq: - type: object - required: - - id - - reportType - properties: - id: - description: Идентификатор отчёта в UUID-формате. Генерируется продавцом самостоятельно - type: string - format: uuid - reportType: - description: Тип отчёта — `DETAIL_HISTORY_REPORT` - type: string - userReportName: - type: string - description: Название отчёта (если не указано, сформируется автоматически) - params: - description: Параметры отчёта - type: object - required: - - startDate - - endDate - properties: - nmIDs: - type: array - minItems: 0 - maxItems: 1000 - description: | - `nmID `, по которым составить отчёт. Оставьте пустым, чтобы получить отчёт по всем товарам - items: - type: integer - format: int64 - subjectIDs: - type: array - description: Идентификаторы предметов - items: - type: integer - format: int64 - brandNames: - type: array - description: Бренды - items: - type: string - tagIDs: - type: array - description: Идентификаторы тегов - items: - type: integer - format: int64 - startDate: - type: string - description: Начало периода - format: date - endDate: - type: string - description: Конец периода - format: date - timezone: - type: string - description: | - Временная зона, по умолчанию Europe/Moscow - aggregationLevel: - type: string - description: | - Как сгруппировать данные (по умолчанию по дням): - - * `day` — по дням - * `week` — по неделям - * `month` — по месяцам - enum: - - day - - week - - month - skipDeletedNm: - description: Скрыть удалённые номенклатуры - type: boolean - GroupedByObjectsBrandsAndTagsReq: - type: object - required: - - id - - reportType - properties: - id: - description: Идентификатор отчёта в UUID-формате. Генерируется продавцом самостоятельно - type: string - format: uuid - reportType: - description: Тип отчёта — `GROUPED_HISTORY_REPORT` - type: string - userReportName: - type: string - description: Название отчёта (если не указано, сформируется автоматически) - params: - description: Параметры отчёта - type: object - required: - - startDate - - endDate - properties: - subjectIDs: - type: array - description: Идентификаторы предметов - items: - type: integer - format: int64 - brandNames: - type: array - description: Бренды - items: - type: string - tagIDs: - type: array - description: Идентификаторы тегов - items: - type: integer - format: int64 - startDate: - type: string - description: Начало периода - format: date - endDate: - type: string - description: Конец периода - format: date - timezone: - type: string - description: | - Временная зона, по умолчанию Europe/Moscow - aggregationLevel: - type: string - description: | - Как сгруппировать данные (по умолчанию по дням): - - * `day` — по дням - * `week` — по неделям - * `month` — по месяцам - skipDeletedNm: - description: Скрыть удалённые `nmID` - type: boolean - NmReportRetryReportRequest: - properties: - downloadId: - type: string - description: ID отчёта - format: uuid - example: 06eea887-9d9f-491f-b16a-bb1766fcb8d2 - NmReportCreateReportResponse: - type: object - properties: - data: - type: string - description: Уведомление, что началась генерация отчёта - example: Началось формирование файла/отчета - error: - type: boolean - description: Флаг ошибки - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: array - example: null - items: + example: 15 + description: Current discount + planDiscount: + type: integer + example: 34 + description: Recommended discount for participating in the promotion + Response200: + description: Success type: object properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - NmReportGetReportsResponse: - type: object - properties: - data: - type: array - items: + data: + type: object + properties: + templates: + type: array + items: + type: object + properties: + id: + type: string + description: Template ID + name: + type: string + description: Template name + text: + type: string + description: Template text + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + PostTemplateOK: type: object properties: - id: - description: Идентификатор отчёта - type: string - format: uuid - example: 06eae887-9d9f-491f-b16a-bb1766fcb8d2 - createdAt: - type: string - description: Дата и время завершения генерации - format: date-time - example: {} - status: - type: string - description: | - Статус отчёта: - - * `WAITING` — в очереди на обработку - * `PROCESSING` — генерируется - * `SUCCESS —` готов - * `RETRY` — ожидает повторной обработки - * `FAILED` — не получилось сгенерировать, сгенерируйте повторно - example: SUCCESS - name: - description: Название отчёта - type: string - example: Card report - size: - description: Размер отчёта, Б - type: integer - example: 123 - startDate: - description: Начало периода - type: string - format: date - example: {} - endDate: - description: Конец периода - type: string - format: date - example: {} - error: - type: boolean - example: false - description: Флаг ошибки - errorText: - type: string - description: Текст ошибки - additionalErrors: - type: array - example: null - items: + data: + type: object + properties: + id: + description: Template ID + type: string + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error description + additionalErrors: + nullable: true + description: Additional errors + type: array + items: + type: string + PatchDelRespOK: type: object properties: - field: - type: string - description: - type: string - NmReportRetryReportResponse: - type: object - properties: - data: - type: string - description: Уведомление, что началась повторная генерация отчёта - example: Началось переформирование файла/отчета - error: - type: boolean - description: Флаг ошибки - example: false - errorText: - description: Описание ошибки - type: string - example: '' - additionalErrors: - description: Дополнительные ошибки - type: array - items: + data: + type: boolean + nullable: true + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + ResponseErrorTemplate: type: object properties: - field: - description: Структура, где допущена ошибка - type: string - description: - description: Описание - type: string - example: null - ErrorInternalResponse: - description: Прочие ошибки - type: object - properties: - error: - type: boolean - errorText: - type: string - example: Internal server error - ResponseWithReturn: - type: object - properties: - total: - type: integer - description: Размер обновлённого бюджета - StatInterval: - type: object - properties: - interval: - description: Запрошенный временной диапазон. - type: object - properties: - begin: - description: Начало запрашиваемого периода - type: string - format: date - end: - description: Конец запрашиваемого периода - type: string - format: date - stats: - description: Блок статистики - type: array - items: - $ref: '#/components/schemas/StatsBlok1' - StatDate: - type: object - properties: - dates: - description: Даты, за которые необходимо выдать информацию. - type: array - items: - type: string - format: date - stats: - description: Блок статистики - type: array - items: - $ref: '#/components/schemas/StatsBlok2' - Stat: - type: object - properties: - stats: - description: Блок статистики - type: array - items: - $ref: '#/components/schemas/StatsBlok1' - StatsBlok1: - type: object - properties: - item_id: - description: ID баннера - type: integer - item_name: - description: Название бренда - type: string - category_name: - description: Название категории - type: string - advert_type: - description: | -
Тип медиакампании:
1 - размещение по дням
2 - размещение по просмотрам
- type: integer - place: - description: Место на странице - type: integer - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - cr: - description: | - CR(conversion rate) — это отношение количества заказов к общему количеству посещений медиакампании - type: number - ctr: - description: | - CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании - type: number - date_from: - description: Время начала размещения - type: string - format: date-time - date_to: - description: Время завершения размещения - type: string - format: date-time - subject_name: - description: Родительская категория предмета - type: string - atbs: - description: Количество добавлений товаров в корзину - type: integer - orders: - description: Количество заказов - type: integer - price: - description: Стоимость размещения - type: integer - cpc: - description: (cost per click) - цена клика по продвигаемому товару - type: number - status: - description: Статус медиакампании - type: integer - daily_stats: - $ref: '#/components/schemas/DailyStats1' - expenses: - description: Стоимость размещения баннера - type: integer - cr1: - description: Отношение количества добавлений в корзину к количеству кликов - type: number - cr2: - description: Отношение количества заказов к количеству добавлений в корзину - type: integer - DailyStats1: - type: array - items: - type: object - properties: - date: - description: Дата - type: string - format: date-time - app_type_stats: - description: Статистика по платформам - type: array - items: - type: object - properties: - app_type: - description: | -
-
Тип платформы:
-
1 - сайт
-
32 - Android
-
64 - IOS
-
- type: integer - stats: - $ref: '#/components/schemas/Stats1' - Stats1: - type: array - items: - type: object - properties: - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - atbs: - description: Количество добавлений товаров в корзину - type: integer - ctr: - description: | - CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании - type: number - StatsBlok2: - type: object - properties: - item_id: - description: ID баннера - type: integer - item_name: - description: Название бренда - type: string - category_name: - description: Название категории - type: string - advert_type: - description: | -
Тип медиакампании:
1 - размещение по дням
2 - размещение по просмотрам
- type: integer - place: - description: Место на странице - type: integer - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - cr: - description: | - CR(conversion rate) — это отношение количества заказов к общему количеству посещений медиакампании - type: number - ctr: - description: | - CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании - type: number - date_from: - description: Время начала размещения - type: string - format: date-time - date_to: - description: Время завершения размещения - type: string - format: date-time - subject_name: - description: Родительская категория предмета - type: string - atbs: - description: Количество добавлений товаров в корзину - type: integer - orders: - description: Количество заказов - type: integer - price: - description: Стоимость размещения - type: integer - cpc: - description: (cost per click) - цена клика по продвигаемому товару - type: number - status: - description: Статус медиакампании - type: integer - daily_stats: - $ref: '#/components/schemas/DailyStats2' - expenses: - description: Стоимость размещения баннера - type: integer - cr1: - description: Отношение количества добавлений в корзину к количеству кликов - type: number - cr2: - description: Отношение количества заказов к количеству добавлений в корзину - type: integer - DailyStats2: - type: array - items: - type: object - properties: - date: - description: Дата - type: string - format: date-time - app_type_stats: - description: Статистика по платформам - type: array - items: - type: object - properties: - app_type: - description: | -
-
Тип платформы:
-
1 - сайт
-
32 - Android
-
64 - IOS
-
- type: integer - stats: - $ref: '#/components/schemas/Stats2' - Stats2: - type: array - items: - type: object - properties: - views: - description: Количество просмотров - type: integer - clicks: - description: Количество кликов - type: integer - atbs: - description: Количество добавлений товаров в корзину - type: integer - orders: - description: Количество заказов - type: integer - cr: - description: | - CR(conversion rate) — отношение количества заказов к общему количеству посещений медиакампании - type: number - ctr: - description: | - CTR (click-through rate) — показатель кликабельности, отношение числа кликов к количеству показов в рамках медиакампании - type: number - RequestWithDate: - type: array - minItems: 1 - maxItems: 100 - items: - type: object - properties: - id: - description: ID кампании - type: integer - dates: - description: Даты, за которые необходимо выдать информацию. - type: array - items: - type: string - format: date - RequestWithCampaignID: - type: array - minItems: 1 - maxItems: 100 - items: - type: object - properties: - id: - description: ID кампании - type: integer - RequestWithInterval: - type: array - minItems: 1 - maxItems: 100 - items: - type: object - properties: - id: - description: ID кампании - type: integer - interval: - description: Временной диапазон, за который необходимо выдать данные. + data: + type: object + nullable: true + error: + type: boolean + description: Error flag + errorText: + type: string + description: Error description + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + responsefeedbackErr: type: object properties: - begin: - description: Начало запрашиваемого периода - type: string - format: date - end: - description: Конец запрашиваемого периода - type: string - format: date - Days: - description: Статистка по дням - type: array - items: - type: object - properties: - date: - description: Дата, за которую представлены данные - type: string - format: date-time - views: - type: integer - description: Количество просмотров - clicks: - type: integer - description: Количество кликов - ctr: - type: number - description: "Показатель кликабельности, отношение числа кликов к количеству показов,\_%\n" - cpc: - type: number - description: Средняя стоимость клика, ₽. - sum: - type: number - description: Затраты, ₽. - atbs: - type: integer - description: Количество добавлений товаров в корзину - orders: - type: integer - description: Количество заказов - cr: - type: integer - description: | - CR(conversion rate) — отношение количества заказов к общему количеству посещений кампании - shks: - type: integer - description: Количество заказанных товаров, шт. - sum_price: - type: number - description: Заказов на сумму, ₽ - apps: - description: Блок информации о платформе + data: + type: object + nullable: true + error: + description: Error flag + type: boolean + errorText: + description: Error description + type: string + additionalErrors: + description: Additional errors + nullable: true + type: array + items: + type: string + requestId: + description: '' + type: string + responseFeedback: + description: Array of structure of feedbacks type: array items: - type: object - properties: - views: - type: integer - description: Количество просмотров - clicks: - type: integer - description: Количество кликов - ctr: - type: number - description: "Показатель кликабельности, отношение числа кликов к количеству показов,\_%\n" - cpc: - type: number - description: Средняя стоимость клика, ₽. - sum: - type: number - description: Затраты, ₽. - atbs: - type: integer - description: Количество добавлений товаров в корзину - orders: - type: integer - description: Количество заказов - cr: - type: integer - description: | - CR(conversion rate) — это отношение количества заказов к общему количеству посещений кампании - shks: - type: integer - description: Количество заказанных товаров, шт. - sum_price: - type: number - description: Заказов на сумму, ₽ - nm: - description: Блок статистики по артикулам WB - type: array - items: - type: object - properties: - views: - type: integer - description: Количество просмотров - clicks: - type: integer - description: Количество кликов - ctr: - type: number - description: "Показатель кликабельности, отношение числа кликов к количеству показов,\_%\n" - cpc: - type: number - description: Средняя стоимость клика, ₽. - sum: - type: number - description: Затраты, ₽. - atbs: + type: object + properties: + id: + type: string + description: Feedback ID + text: + type: string + description: Feedback text + nullable: false + pros: + type: string + description: Product pros + nullable: false + cons: + type: string + description: Product cons + nullable: false + productValuation: type: integer - description: Количество добавлений товаров в корзину - orders: + description: Product rate + createdDate: + type: string + format: date-time + description: Date and time the feedback was created + answer: + nullable: true + type: object + description: Reply structure + properties: + text: + type: string + description: Reply text + state: + type: string + description: | + Status: + - `none` - new + - `wbRu` - displayed on the site + - `reviewRequired` - response being reviewed + - `rejected` - response rejected + editable: + type: boolean + description: Whether the response can be edited.
false - cannot be edited, true - can be edited + state: + type: string + description: | + Feedback status: + - `none` - unanswered (new) + - `wbRu` - answered + productDetails: + description: Product structure + type: object + properties: + nmId: + type: integer + description: WB article + imtId: + type: integer + description: Product card ID + productName: + type: string + description: Product name + supplierArticle: + type: string + nullable: true + description: Seller's article + supplierName: + type: string + nullable: true + description: Seller's name + brandName: + type: string + nullable: true + description: Product brand + size: + type: string + description: Product size (`techSize' in the product card) + photoLinks: + nullable: true + description: Array of structure of images + type: array + items: + type: object + properties: + fullSize: + type: string + description: Link of full-size images + miniSize: + type: string + description: Link of small-size images + video: + nullable: true + description: Video structure + type: object + properties: + previewImage: + type: string + description: URL to the video cover image + link: + type: string + description: URL to the video playlist file (available via HLS protocol) + duration_sec: + type: integer + description: Total duration of the video + wasViewed: + type: boolean + description: Presence of feedback viewed + userName: + type: string + description: Name of the feedback author + matchingSize: + type: string + description: | + Compliance of the declared size with the real one. +
Possible values: + - ` ` - for dimensionless goods + - `ок` - matches to the size + - `smaller` - size is smaller + - `bigger` - size is bigger + isAbleSupplierFeedbackValuation: + description: Is the seller able to file a complaint about the feedback (`true` - available, `false` - not available) + type: boolean + supplierFeedbackValuation: + description: | + Reason for complaint about the feedback +
+ (Look feedbackValuations field, a method for obtaining lists of product issues and reasons for complaint about the feedback) type: integer - description: Количество заказов - cr: + isAbleSupplierProductValuation: + description: | + Product issue +
+ (Look productValuations field, a method for obtaining lists of product issues and reasons for complaint about the feedback) + type: boolean + supplierProductValuation: + description: Product rating left by the seller type: integer - description: | - CR(conversion rate) — отношение количества заказов к общему количеству посещений кампании - shks: + isAbleReturnProductOrders: + description: Is the product return option available (false - no, true - yes) + type: boolean + returnProductOrdersDate: + description: Date and time when a response with status code 200 was received for the return request. + type: string + bables: + nullable: true + description: List of customer tags + type: array + items: + type: string + lastOrderShkId: type: integer - description: Количество заказанных товаров, шт. - sum_price: - type: number - description: Заказов на сумму, ₽ - name: + description: Barcode of the product + lastOrderCreatedAt: type: string - nmId: + description: Date of purchase + color: + type: string + description: Product color + subjectId: type: integer - appType: - type: integer - description: Тип платформы (`1` - сайт, `32` - Android, `64` - IOS) - BoosterStats: - description: Статистика по средней позиции товара на страницах поисковой выдачи и каталога (для автоматических кампаний). - type: array - items: - type: object - properties: - date: - description: Дата, за которую предоставлены данные. - type: string - format: date-time - nm: - description: Артикул WB - type: integer - avg_position: - description: Средняя позиция товара на страницах поисковой выдачи и каталога - type: integer - ResponseWithInterval: - description: Ответ при запросе с interval - type: array - items: - type: object - properties: - interval: - description: Запрошенный временной диапазон. - type: object - properties: - begin: - description: Начало запрашиваемого периода - type: string - format: date - end: - description: Конец запрашиваемого периода - type: string - format: date - views: - type: integer - description: | - Количество просмотров.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - clicks: - type: integer - description: | - Количество кликов.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - ctr: - type: number - description: | - Показатель кликабельности.
- Отношение числа кликов к количеству показов. Выражается в процентах.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам.
- cpc: - type: number - description: | - Средняя стоимость клика, ₽.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - sum: - type: number - description: | - Затраты, ₽.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - atbs: - type: integer - description: | - Количество добавлений товаров в корзину.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - orders: - type: integer - description: | - Количество заказов.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - cr: - type: integer - description: | - CR(conversion rate) — это отношение количества заказов к общему количеству посещений кампании.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - shks: - type: integer - description: | - Количество заказанных товаров, шт.
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - sum_price: - type: number - description: | - Заказов на сумму, ₽
- За все дни запрошенного диапазона, по всем артикулам WB и платформам. - days: - $ref: '#/components/schemas/Days' - boosterStats: - $ref: '#/components/schemas/BoosterStats' - advertId: - description: ID кампании - type: integer - ResponseWithDate: - description: Ответ при запросе с dates - type: array - items: - type: object - properties: - dates: - description: Даты, за которые необходимо выдать информацию. - type: array - items: - type: string - format: date - views: - type: integer - description: | - Количество просмотров.
- За все дни, по всем артикулам WB и платформам. - clicks: - type: integer - description: | - Количество кликов.
- За все дни, по всем артикулам WB и платформам. - ctr: - type: number - description: | - Показатель кликабельности.
- Отношение числа кликов к количеству показов. Выражается в процентах.
- За все дни, по всем артикулам WB и платформам.
- cpc: - type: number - description: | - Средняя стоимость клика, ₽.
- За все дни, по всем артикулам WB и платформам. - sum: - type: number - description: | - Затраты, ₽.
- За все дни, по всем артикулам WB и платформам. - atbs: - type: integer - description: | - Количество добавлений товаров в корзину.
- За все дни, по всем артикулам WB и платформам. - orders: - type: integer - description: | - Количество заказов.
- За все дни, по всем артикулам WB и платформам. - cr: - type: integer - description: | - CR(conversion rate) — это отношение количества заказов к общему количеству посещений кампании.
- За все дни, по всем артикулам WB и платформам. - shks: - type: integer - description: | - Количество заказанных товаров, шт.
- За все дни, по всем артикулам WB и платформам. - sum_price: - type: number - description: | - Заказов на сумму, ₽
- За все дни, по всем артикулам WB и платформам. - days: - $ref: '#/components/schemas/Days' - boosterStats: - $ref: '#/components/schemas/BoosterStats' - advertId: - description: ID кампании - type: integer - ResponseInfoAdvert: - type: object - properties: - advertId: - description: Идентификатор кампании - type: integer - example: 1234 - type: - description: | -
-
Тип кампании:
-
4 - кампания в каталоге
-
5 - кампания в карточке товара
-
6 - кампания в поиске
-
7 - кампания в рекомендациях на главной странице
-
- type: integer - example: 4 - status: - description: | -
-
Статус кампании:
-
-1 - кампания в процессе удаления
-
4 - готова к запуску
-
7 - Кампания завершена
-
8 - отказался
-
9 - идут показы
-
11 - Кампания на паузе
-
- Кампания в процессе удаления. Статус означает, что кампания была удалена, и через 3-10 минут она исчезнет из ответа метода. - - type: integer - example: 9 - dailyBudget: - description: Дневной бюджет, если не установлен, то 0 - type: integer - createTime: - description: Время создания кампании - type: string - example: '2022-03-09T10:50:21.831623+03:00' - changeTime: - description: Время последнего изменения кампании - type: string - example: '2022-12-22T18:24:19.808701+03:00' - startTime: - description: Дата последнего запуска кампании - type: string - endTime: - description: Дата завершения кампании - type: string - name: - description: Название кампании - type: string - params: - description: Параметры кампании - type: array - items: + description: Subject ID + subjectName: + type: string + description: Subject name + parentFeedbackId: + type: string + description: ID of the original feedback (`null` if this feedback is original) + nullable: true + childFeedbackId: + type: string + nullable: true + description: ID of the updated feedback (`null` if this feedback is updated) + Chat: type: object properties: - subjectName: - description: Название предметной группы (для кампаний в поиске и рекомендациях) - type: string - active: - description: Флаг активности предметной группы, true - активна, false - неактивна - type: boolean - intervals: - description: Интервалы часов показа кампании - type: array - items: - type: object - properties: - Begin: - description: Время начала показов - type: integer - End: - description: Время окончания показов - type: integer - price: - description: Текущая ставка - type: integer - menuId: - description: Идентификатор меню, где размещается кампания (для кампаний в каталоге) - type: integer - subjectId: - description: Идентификатор предметной группы, для которой создана кампания (для кампаний в поиске и рекомендациях) - type: integer - setId: - description: Идентификатор сочетания предмета и пола (для кампаний в карточке товара) - type: integer - setName: - description: Сочетание предмета и пола (для кампаний в карточке товара) - type: string - menuName: - description: Название меню, где размещается кампания (для кампаний в каталоге) - type: string - nms: - description: Массив номенклатур кампании - type: array - items: - type: object - properties: - nm: - type: integer - description: Числовой идентификатор номенклатуры Wildberries (nmId) - active: - type: boolean - description: Состояние номенклатуры (true - активна или false - неактивна) - searchPluseState: - description: | - Активность фиксированных фраз (Для кампаний в поиске)
- (`false` - отключены, `true` - включены) - type: boolean - example: - - advertId: 12345 - name: Носки_Шерстяные - type: 6 - status: 9 - dailyBudget: 0 - createTime: '2023-05-31 16:57:42.654141+03:00' - changeTime: '2023-06-21 22:10:43.074183+03:00' - startTime: '2023-07-21 21:17:42.872376+03:00' - endTime: '2100-01-01 00:00:00+03:00' - params: - - intervals: - - begin: 3 - end: 5 - price: 400 - subjectId: 201 - subjectName: Носки - nms: - - nm: 11111111 - active: true - active: false - searchPluseState: false - ResponseInfoAdvertType8: - type: object - properties: - advertId: - description: Идентификатор кампании - type: integer - name: - description: Название кампании - type: string - type: - description: | -
Тип кампании:
8 - автоматическая - кампания
- type: integer - status: - description: | -
Статус кампании:
-1 - кампания - в процессе удаления
4 - - готова к запуску
7 - Кампания завершена
-
8 - отказался
9 - идут показы
-
11 - Кампания на паузе
Кампания в процессе - удаления. Статус означает, что кампания была удалена, и через 3-10 минут - она исчезнет из ответа метода. - type: integer - dailyBudget: - description: Не используется - type: integer - createTime: - description: Дата создания кампании - type: string - format: date-time - changeTime: - description: Дата последнего изменения кампании - type: string - format: date-time - startTime: - description: Дата последнего запуска кампании - type: string - format: date-time - endTime: - description: Дата завершения кампании - type: string - format: date-time - autoParams: - type: object - properties: - subject: - description: Продвигаемый предмет - type: object - properties: - id: - description: Идентификатор предмета - type: integer - name: - description: Предмет - type: string - sets: - description: Внутренняя (системная) сущность (пол + предмет) - type: array - items: - type: object - properties: - id: - description: Идентификатор set - type: integer - name: - description: Название set + chatID: type: string - menus: - type: array - items: - type: object - properties: - id: - description: Идентификатор menu - type: integer - name: - description: Название menu + description: Chat ID + example: 1:4019cd7d-cca8-4e90-8b11-f78afbea42e3 + replySign: type: string - active: - description: Зоны показов - type: object - properties: - carousel: - description: Карточка товара (`false` - отключены, `true` - включены) - type: boolean - recom: - description: Рекомендации на главной (`false` - отключены, `true` - включены) - type: boolean - booster: - description: Поиск/Каталог (`false` - отключены, `true` - включены) - type: boolean - nmCPM: - type: array - description: | - Ставки номенклатур (артикулов WB) - items: - type: object - properties: - nm: - description: Артикул WB - type: integer - cpm: - description: Ставка - type: integer - nms: - description: Артикулы WB - type: array - items: - type: integer - cpm: - description: | - Ставка, указанная при создании кампании.
Поле актуально только для кампаний, созданных через API. - type: integer - example: - advertId: 7538202 - name: Кампания от 26.06.2023 - type: 8 - status: 11 - dailyBudget: 0 - createTime: '2023-06-26T11:21:47.78371+03:00' - changeTime: '2023-06-26T11:43:44.015093+03:00' - startTime: '2023-06-26T11:21:48.109914+03:00' - endTime: '2100-01-01T00:00:00+03:00' - autoParams: - subject: - id: 104 - name: Кеды - sets: - - id: 6378 - name: для всех - active: - carousel: false - recom: false - booster: true - nms: - - 12345678 - nmCPM: - - nm: 12345678 - cpm: 436 - cpm: 125 - ResponseInfoAdvertType9: - type: object - properties: - advertId: - description: Идентификатор кампании - type: integer - name: - description: Название кампании - type: string - type: - description: | -
Тип кампании:
9 - поиск + каталог -
- type: integer - status: - description: | -
Статус кампании:
-1 - кампания - в процессе удаления
4 - - готова к запуску
7 - Кампания завершена
-
8 - отказался
9 - идут показы
-
11 - Кампания на паузе
Кампания в процессе - удаления. Статус означает, что кампания была удалена, и через 3-10 минут - она исчезнет из ответа метода. - type: integer - dailyBudget: - description: Не используется - type: integer - createTime: - description: Дата создания кампании - type: string - format: date-time - changeTime: - description: Дата последнего изменения кампании - type: string - format: date-time - startTime: - description: Дата последнего запуска кампании - type: string - format: date-time - endTime: - description: Дата завершения кампании - type: string - format: date-time - unitedParams: - type: array - items: + description: | + Chat signature. Required when [sending a message](./#/paths/~1api~1v1~1seller~1message/post) + example: 1:4019cd7d-cca8-4e90-8b11-f78afbea42e3:54828159:bc3a4c04079f5956cff170b25e73523aa1208b5c0bd7aea1e520a64ae3e212b1ebae6712661f3afd27520fa785fa3042254e8a3100ce00644322054ae7cfcd0e + clientID: + type: string + description: Buyer ID + example: 123456 + clientName: + type: string + description: Buyer's name + example: Иван + goodCard: + $ref: '#/components/schemas/GoodCard' + ChatsResponse: type: object properties: - subject: - type: object - properties: - id: - description: ID предметной группы, для которой создана кампания + result: + type: array + items: + $ref: '#/components/schemas/Chat' + errors: + description: Errors, if any + nullable: true + type: array + example: null + items: + type: string + Event: + type: object + properties: + chatID: + type: string + description: Chat ID + eventID: + type: string + description: Event ID + eventType: + $ref: '#/components/schemas/EventType' + isNewChat: + type: boolean + description: | + New chat indicator: + - `false` — chat is not new + - `true` — chat is new + message: + type: object + description: Message data + properties: + attachments: + $ref: '#/components/schemas/EventAttachments' + text: + type: string + description: Message text + refund: + $ref: '#/components/schemas/Refund' + source: + type: string + description: | + Message sending source: + - `seller-portal` — sellers portal + - `seller-public-api` — Buyers chat API + - `rusite` — buyers portal + - `global` — `global.wildberries.ru` portal + - `ios` — mobile operating system by **Apple** + - `android` — **Android** mobile operating system by **Google** + addTimestamp: type: integer - name: - description: Название предметной группы + description: Time of event occurrence on the server. Unix timestamp format + addTime: type: string - menus: - type: array - items: - type: object - properties: - id: - description: ID меню, где размещается кампания - type: integer - name: - description: Название меню - type: string - nms: - description: Артикулы WB - type: array - items: - type: integer - searchCPM: - description: Ставка в Поиске. - type: integer - catalogCPM: - description: Ставка в Каталоге, при наличии. - type: integer - example: - advertId: 7843452 - name: пиджак женский оверсайз черный / поиск - type: 9 - status: 11 - dailyBudget: 0 - createTime: '2023-07-09T10:56:02.150362+03:00' - changeTime: '2023-07-11T02:48:44.767712+03:00' - startTime: '2023-07-10T08:02:31.949155+03:00' - endTime: '2100-01-01T00:00:00+03:00' - unitedParams: - - subject: - id: 3038 - name: Противовирусные препараты - menus: - - id: -1 - name: '' - nms: - - 38995344 - searchCPM: 123 - catalogCPM: 321 - responseAdvError1: - type: object - properties: - error: - type: string - responseAdvert401: - type: object - properties: - code: - type: integer - message: - type: string - rejected: - type: string - Response200: - description: '' - type: object - properties: - data: - type: object - properties: - templates: - type: array - items: - type: object - properties: - id: + description: Time of event occurrence on the server in UTC + replySign: type: string - description: Идентификатор шаблона - name: + description: | + Chat signature. Available only if `"isNewChat": true`. Required when [sending a message](./user-communication#tag/Buyers-Chat/paths/~1api~1v1~1seller~1message/post) + sender: + $ref: '#/components/schemas/Sender' + clientID: type: string - description: Название шаблона - text: + description: Buyer ID + clientName: type: string - description: Текст шаблона - error: - type: boolean - description: Есть ли ошибка - errorText: - type: string - description: Описание ошибки - additionalErrors: - type: object - description: Дополнительные ошибки - PostTemplateOK: - type: object - properties: - data: - type: object - properties: - id: - description: Идентификатор шаблона - type: string - error: - type: boolean - description: Есть ли ошибка - errorText: - type: string - description: Описание ошибки - additionalErrors: - nullable: true - description: Дополнительные ошибки - type: array - items: - type: string - PatchDelRespOK: - type: object - properties: - data: - type: boolean - nullable: true - error: - type: boolean - description: Есть ли ошибка - errorText: - type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - ResponseErrorTemplate: - type: object - properties: - data: - type: object - nullable: true - error: - type: boolean - description: Есть ли ошибка - errorText: - type: string - description: Описание ошибки - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - responsefeedbackErr: - type: object - properties: - data: - type: object - nullable: true - error: - description: Есть ли ошибка - type: boolean - errorText: - description: Описание ошибки - type: string - additionalErrors: - description: Дополнительные ошибки - nullable: true - type: array - items: - type: string - requestId: - description: '' - type: string - productRating: - type: object - properties: - nmId: - type: integer - description: Артикул WB - imtId: - type: integer - description: Идентификатор карточки товара - valuationsSum: - type: integer - description: Сумма оценок - feedbacksCount: - type: integer - description: Количество отзывов - valuation: - type: number - description: Средняя оценка - productName: - type: string - nullable: true - description: Название товара - supplierArticle: - type: string - description: Артикул продавца - brandName: - type: string - description: Бренд товара - responseFeedback: - description: Массив структур отзывов - type: array - items: - type: object - properties: - id: - type: string - description: Id отзыва - userName: - type: string - description: Имя автора отзыва - matchingSize: - type: string - description: | - Соответствие заявленного размера реальному. -
Возможные значения: - - ` ` - для безразмерных товаров - - `ок` - соответствует размеру - - `smaller` - маломерит - - `bigger` - большемерит - text: - type: string - description: Текст отзыва - productValuation: - type: integer - description: Оценка товара от покупателя - createdDate: - type: string - format: date-time - description: Дата и время создания отзыва - state: - type: string - description: | - Статус отзыва: - - `none` - не обработан (новый) - - `wbRu` - обработан - answer: - type: object - description: Структура ответа - properties: - text: - type: string - description: Текст ответа - state: - type: string - description: | - Статус: - - `none` - новый - - `wbRu` - отображается на сайте - - `reviewRequired` - ответ проходит проверку - - `rejected` - ответ отклонён - productDetails: - description: Структура товара - type: object - properties: - nmId: - type: integer - description: Артикул WB - imtId: - type: integer - description: Идентификатор карточки товара - productName: - type: string - description: Название товара - supplierArticle: - type: string - nullable: true - description: Артикул продавца - supplierName: - type: string - nullable: true - description: Имя продавца - brandName: - type: string - nullable: true - description: Бренд товара - size: - type: string - description: Размер товара (`techSize` в КТ) - photoLinks: - description: Массив структур фотографий - type: array - items: - type: object - properties: - fullSize: - type: string - description: Адрес фотографии полного размера - miniSize: - type: string - description: Адрес фотографии маленького размера - video: - description: Структура видео - type: object - properties: - previewImage: - type: string - description: Ссылка на обложку видео - link: - type: string - description: Ссылка на файл плейлиста видео (доступно по протоколу hls) - duration_sec: - type: integer - description: Общая продолжительность видео - wasViewed: - type: boolean - description: Просмотрен ли отзыв - isAbleSupplierFeedbackValuation: - description: Доступна ли продавцу оценка отзыва (`true` - доступна, `false` - не доступна) - type: boolean - supplierFeedbackValuation: - description: Оценка отзыва, оставленная продавцом - type: integer - isAbleSupplierProductValuation: - description: Доступна ли продавцу оценка товара (`true` - доступна, `false` - не доступна) - type: boolean - supplierProductValuation: - description: Оценка товара, оставленная продавцом - type: integer - isAbleReturnProductOrders: - description: Доступна ли товару опция возврата (`false` - нет, `true` - да) - type: boolean - returnProductOrdersDate: - description: Дата и время, когда на запрос возврата был получен ответ со статус-кодом 200. - type: string - bables: - description: Список тегов покупателя - type: array - items: - type: string - models.TariffsBoxResponse: - type: object - properties: - data: - $ref: '#/components/schemas/models.WarehousesBoxRates' - models.WarehousesBoxRates: - type: object - properties: - dtFromMin: - type: string - description: Дата начала тарифа - example: {} - dtNextBox: - type: string - description: Дата начала следующего тарифа - example: {} - dtTillMax: - type: string - description: Дата окончания тарифа - example: {} - warehouseList: - type: array - items: - $ref: '#/components/schemas/models.WarehouseBoxRates' - nullable: true - description: Тарифы для коробов, сгруппированные по складам - models.WarehouseBoxRates: - type: object - properties: - boxDeliveryAndStorageExpr: - type: string - description: Коэффициент, %. На него умножается стоимость доставки и хранения. Во всех тарифах этот коэффициент уже учтён - example: 20 - boxDeliveryBase: - type: string - description: "Доставка 1\_литра,\_₽" - example: 150 - boxDeliveryLiter: - type: string - description: "Доставка каждого дополнительного литра,\_₽" - example: 10 - boxStorageBase: - type: string - description: "Хранение 1\_литра,\_₽" - example: 100 - boxStorageLiter: - type: string - description: "Хранение каждого дополнительного литра,\_₽" - example: 10 - warehouseName: - type: string - description: Название склада - example: Коледино - models.TariffsPalletResponse: - type: object - properties: - data: - $ref: '#/components/schemas/models.WarehousesPalletRates' - models.WarehousesPalletRates: - type: object - properties: - dtFromMin: - type: string - description: Дата начала тарифа - example: {} - dtNextPallet: - type: string - description: Дата начала следующего тарифа - example: {} - dtTillMax: - type: string - description: Дата окончания тарифа - example: {} - warehouseList: - type: array - items: - $ref: '#/components/schemas/models.WarehousePalletRates' - nullable: true - description: Тарифы для монопаллет, сгруппированные по складам - models.WarehousePalletRates: - type: object - properties: - palletDeliveryExpr: - type: string - description: Коэффициент доставки, %. На него умножается стоимость доставки. Во всех тарифах этот коэффициент уже учтён - example: 20 - palletDeliveryValueBase: - type: string - description: "Доставка 1\_литра,\_₽" - example: 150 - palletDeliveryValueLiter: - type: string - description: "Доставка каждого дополнительного литра,\_₽" - example: 50 - palletStorageExpr: - type: string - description: Коэффициент хранения, %. На него умножается стоимость хранения. Во всех тарифах этот коэффициент уже учтён - example: 20 - palletStorageValueExpr: - type: string - description: "Хранение 1\_монопаллеты,\_₽" - example: 200 - warehouseName: - type: string - description: Название склада - example: Коледино - models.ReturnTariffsResponse: - type: object - properties: - data: - $ref: '#/components/schemas/models.WarehousesReturnRates' - models.WarehousesReturnRates: - type: object - properties: - dtNextDeliveryDumpKgt: - type: string - description: Дата начала следующего тарифа при грузовой доставке - example: {} - dtNextDeliveryDumpSrg: - type: string - description: Дата начала следующего тарифа для неопознанных товаров - example: {} - dtNextDeliveryDumpSup: - type: string - description: Дата начала следующего тарифа при обычной доставке - example: {} - warehouseList: - type: array - items: - $ref: '#/components/schemas/models.WarehouseReturnRates' - nullable: true - description: "

Тарифы на\_возврат, сгруппированные по складам:

    \n
  • стоимость возврата брака и возврата по инициативе продавца при грузовой доставке;
  • \n
  • стоимость возврата неопознанного складом товара;
  • \n
  • стоимость возврата брака и возврата по инициативе продавца (в пункт выдачи и обратно).
  • \n

Можно получить стоимость возврата в пункт выдачи (ПВЗ) и обратной логистики\_— если продавец не забрал товары из пункта выдачи за\_7 дней.

\n" - models.WarehouseReturnRates: - type: object - properties: - deliveryDumpKgtOfficeBase: - type: string - description: "

Стоимость возврата при грузовой доставке, доставка на\_ПВЗ (базовая цена\_за\_1\_л),\_₽

Применяется для крупногабаритных товаров, когда:

    \n
  • продавец хочет вывезти товары со склада Wildberries;
  • \n
  • на\_складе обнаружили бракованные товары;
  • \n
  • покупатель возвращает товар, но его нельзя вернуть в продажу.
  • \n
\n" - example: 100 - deliveryDumpKgtOfficeLiter: - type: string - description: "

Стоимость возврата при грузовой доставке, доставка на\_ПВЗ (доп. литр),\_₽

Стоимость за\_каждый дополнительный литр.

\n" - example: 30 - deliveryDumpKgtReturnExpr: - type: string - description: "

Стоимость возврата при грузовой доставке, обратная логистика невостребованного возврата,\_₽

Грузовая доставка невостребованного возврата обратно на\_склад Wildberries. За единицу товара.

\n" - example: 200 - deliveryDumpSrgOfficeExpr: - type: string - description: "

Стоимость возврата неопознанного складом товара за\_каждую единицу, доставка на\_ПВЗ, ₽

Применяется для товаров, которые не смогли принять на\_складе

.\n" - example: 200 - deliveryDumpSrgReturnExpr: - type: string - description: "

Стоимость возврата неопознанного складом товара за\_каждую единицу, обратная логистика невостребованного возврата

Доставка невостребованного возврата обратно на\_склад Wildberries.

" - example: 200 - deliveryDumpSupCourierBase: - type: string - description: "Стоимость возврата, доставка курьером (базовая цена\_за\_1\_л). Сейчас этот тариф не\_применяется" - deliveryDumpSupCourierLiter: - type: string - description: "Стоимость возврата, доставка курьером (доп.\_л). Сейчас этот тариф не\_применяется" - deliveryDumpSupOfficeBase: - type: string - description: "

Стоимость возврата, доставка на\_ПВЗ (базовая цена\_за\_1\_л), ₽

Применяется, когда:

  • продавец хочет вывезти товары со склада Wildberries;
  • на\_складе обнаружили бракованные товары;
  • покупатель возвращает товар, но его нельзя вернуть в продажу.
" - example: 200 - deliveryDumpSupOfficeLiter: - type: string - description: "

Стоимость возврата, доставка на\_ПВЗ (доп. литр), ₽

Стоимость за\_каждый дополнительный литр

" - example: 50 - deliveryDumpSupReturnExpr: - type: string - description: "

Стоимость возврата, обратная логистика невостребованного возврата, за\_единицу товара, ₽

\n" - example: 200 - warehouseName: - type: string - description: Название склада - example: Коледино - TariffsBoxResponse: - type: object - properties: - response: - $ref: '#/components/schemas/models.TariffsBoxResponse' - TariffsPalletResponse: - type: object - properties: - response: - $ref: '#/components/schemas/models.TariffsPalletResponse' - ReturnTariffsResponse: - type: object - properties: - response: - $ref: '#/components/schemas/models.ReturnTariffsResponse' - Commission: - type: object - properties: - report: - type: array - description: Список комиссий - items: - type: object - properties: - kgvpMarketplace: - type: number - description: Комиссия по модели `Склад продавца — везу на склад WB`, % - kgvpSupplier: - type: number - description: Комиссия по моделям `Склад продавца — везу самостоятельно до клиента` и `Склад продавца — Курьером WB`, % - kgvpSupplierExpress: - type: number - description: Комиссия по модели `Склад продавца — везу самостоятельно до клиента экспресс`, % - paidStorageKgvp: - type: number - description: Комиссия по модели `Склад WB`, % - parentID: - type: integer - description: ID родительской категории - parentName: - type: string - description: Название родительской категории - subjectID: - type: integer - description: ID предмета - subjectName: - type: string - description: Название предмета - CommissionChina: - type: object - properties: - report: - type: array - description: Список комиссий - items: - type: object - properties: - kgvpChina: - type: number - description: Комиссия для продавцов из Китая, % - parentID: - type: integer - description: ID родительской категории - parentName: - type: string - description: Название родительской категории - subjectID: - type: integer - description: ID предмета - subjectName: - type: string - description: Название предмета - CommissionTurkey: - type: object - properties: - report: - type: array - description: Список комиссий - items: - type: object - properties: - kgvpTurkey: - type: number - description: Комиссия для продавцов из Турции, % - parentID: - type: integer - description: ID родительской категории - parentName: - type: string - description: Название родительской категории - subjectID: - type: integer - description: ID предмета - subjectName: - type: string - description: Название предмета - CommissionUzbekistan: - type: object - properties: - report: - type: array - description: Список комиссий - items: + description: Buyer's name + EventAttachments: type: object + description: Attachments properties: - kgvpUzbekistan: - type: number - description: Комиссия для продавцов из Узбекистана, % - parentID: - type: integer - description: ID родительской категории - parentName: - type: string - description: Название родительской категории - subjectID: - type: integer - description: ID предмета - subjectName: - type: string - description: Название предмета - Chat: - type: object - properties: - chatID: - type: string - description: ID чата - replySign: - type: string - description: | - Подпись чата. Требуется при [отправке сообщения](./#/paths/~1api~1v1~1seller~1message/post) - clientID: - type: string - description: ID покупателя - clientName: - type: string - description: Имя покупателя - ChatsResponse: - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/Chat' - errors: - description: Ошибки, если есть - Error429: - type: object - properties: - code: - type: string - message: - type: string - Event: - type: object - properties: - chatID: - type: string - description: ID чата - eventID: - type: string - description: ID события - eventType: - $ref: '#/components/schemas/EventType' - isNewChat: - type: boolean - description: | - Признак нового чата: - - `false` — чат не новый - - `true` — чат новый - message: - type: object - description: Данные сообщения - properties: - attachments: - $ref: '#/components/schemas/EventAttachments' - text: - type: string - description: Текст сообщения - refund: - $ref: '#/components/schemas/Refund' - source: - type: string - description: | - Источник отправки сообщения: - - `seller-portal` — портал продавцов - - `seller-public-api` — API Чата с покупателями - - `rusite` — портал покупателей - addTimestamp: - type: integer - description: Время появления события на сервере. Формат Unix timestamp - addTime: - type: string - description: Время появления события на сервере в UTC - replySign: - type: string - description: | - Подпись чата. Доступна только при `"isNewChat": true`. Требуется при [отправке сообщения](./#/paths/~1api~1v1~1seller~1message/post) - sender: - $ref: '#/components/schemas/Sender' - clientID: - type: string - description: ID покупателя - clientName: - type: string - description: Имя покупателя - EventAttachments: - type: object - description: Вложения - properties: - goodCard: - $ref: '#/components/schemas/GoodCard' - files: - type: array - description: Файлы - items: - $ref: '#/components/schemas/File' - images: - type: array - description: Изображения - items: - $ref: '#/components/schemas/Image' - EventType: - type: string - description: | - Тип события: - - `message` — сообщение - - `refund` — возврат - enum: - - message - - refund - File: - type: object - properties: - contentType: - type: string - description: Тип файла - date: - type: string - description: Дата загрузки файла - name: - type: string - description: Название файла - url: - type: string - description: URL для получения файла - size: - type: integer - description: Размер файла в байтах - GoodCard: - type: object - description: Информация о заказе - properties: - date: - type: string - description: Дата заказа - needRefund: - type: boolean - description: | - Запрошен ли возврат товара: - - `false` — не запрошен - - `true` — запрошен - nmID: - type: integer - description: Артикул WB - price: - type: integer - description: Стоимость заказа - priceCurrency: - type: string - description: Валюта - rid: - type: string - description: Уникальный ID заказа в WB - size: - type: string - description: Размер товара - statusID: - type: integer - description: | - Статус товара: - - `0` — Товар активный - - `1` — Товар оформлен - - `2` — Товар собирается - - `3` — Товар в пути - - `4` — Товар ожидает в ПВЗ - - `5` — Товар у курьера - - `10` — Товар в архиве - - `11` — Товар выкуплен - - `12` — Товар отменён - - `13` — Оформлен возврат - - `14` — Товар отменён (нет на складе) - Image: - type: object - description: Изображение - properties: - date: - type: string - description: Дата загрузки изображения - url: - type: string - description: URL для получения изображения - MessageResponse: - type: object - properties: - errors: - type: array - description: Ошибки загрузки файлов, если есть - items: + goodCard: + $ref: '#/components/schemas/GoodCard' + files: + type: array + description: Files + items: + $ref: '#/components/schemas/File' + images: + type: array + description: Images + items: + $ref: '#/components/schemas/Image' + EventType: type: string - result: - type: object - properties: - addTime: - type: integer - description: Время загрузки - chatID: - type: string - description: ID чата - Refund: - type: object - description: Возврат товара - properties: - actionType: - $ref: '#/components/schemas/RefundActionType' - price: - type: integer - description: Стоимость заказа - priceCurrency: - type: string - description: Валюта - rid: - type: string - description: Уникальный ID заказа в WB - RefundActionType: - description: | - Действие продавца по возврату: - - `sellerRequestRefund` — продавец запросил возврат товара - - `sellerRejectRefund` — продавец отклонил возврат товара - - `sellerAcceptFullRefund` — продавец одобрил возврат товара - - `sellerAcceptRefundInOffice` — продавец одобрил возврат товара на ПВЗ - type: string - enum: - - sellerRequestRefund - - sellerRejectRefund - - sellerAcceptFullRefund - - sellerAcceptRefundInOffice - Sender: - type: string - description: | - Отправитель: - - `client` — покупатель - - `seller` — продавец - - `wb` — Wildberries - enum: - - client - - seller - - wb - EventsResponse: - type: object - properties: - result: - $ref: '#/components/schemas/EventsResult' - errors: - description: Ошибки, если есть - EventsResult: - type: object - properties: - next: - type: integer - description: Пагинатор. Значение поля необходимо указать в запросе для получения следующего пакета данных. - format: Unix timestamp - newestEventTime: - description: Время новейшего события в ответе - type: string - format: RFC 3339 - oldestEventTime: - description: Время старейшего события в ответе - type: string - format: RFC 3339 - totalEvents: - type: integer - description: Количество событий - events: - type: array - items: - $ref: '#/components/schemas/Event' - examples: - RateLimit: - description: Превышено допустимое количество запросов в единицу времени - value: Too many requests - creatingOneCard: - description: '' - value: - - subjectID: 105 - variants: - - vendorCode: АртикулПродавца - title: Наименование товара - description: Описание товара - brand: Бренд - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Turkish flag - - id: 25471 - value: 1200 - - id: 14177449 - value: - - red - sizes: - - techSize: S - wbSize: '42' - price: 5000 - skus: - - '88005553535' - creatingMergedCards: - description: '' - value: - - subjectID: 3091 - variants: - - vendorCode: АртикулПродавца11 - title: Наименование товара 1 - description: Описание товара 1 - brand: Бренд - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Turkish flag - - id: 25471 - value: 1200 - - id: 14177449 - value: - - red - sizes: - - skus: - - '111111111133111' - - vendorCode: АртикулПродавца22 - title: Наименование товара 2 - description: Описание товара 2 - brand: БрендДругой - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Turkish flag - - id: 25471 - value: 1200 - - id: 14177449 - value: - - red - sizes: - - skus: - - '111111111441111' - creatingGroupOfIndividualCards: - description: '' - value: - - subjectID: 3091 - variants: - - vendorCode: АртикулПродавца1 - title: Наименование товара 1 - description: Описание товара 1 - brand: Бренд - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Turkish flag - - id: 25471 - value: 1200 - - id: 14177449 - value: - - red - sizes: - - skus: - - '1111111111111' - - subjectID: 105 - variants: - - vendorCode: Артикул продавца 2 - title: Наименование товара 2 - description: Описание товара 2 - brand: Бренд - dimensions: - length: 55 - width: 40 - height: 15 - characteristics: - - id: 12 - value: - - Turkish flag - - id: 25471 - value: 1200 - - id: 14177449 - value: - - red - sizes: - - techSize: S - wbSize: '42' - price: 5000 - skus: - - '2222222222222' - responseIncorrectBeginDate: - description: Некорректная дата начала - value: - error: Некорректная дата начала - responseIncorrectEndDate: - description: Некорректная дата конца - value: - error: Некорректная дата конца - responseExceededLimit: - description: '' - value: - data: null - error: true - errorText: В группу можно объединить не больше 30 карточек. В результате запроса будет превышен лимит - additionalErrors: - error: В группу можно объединить не больше 30 карточек. В результате запроса будет превышен лимит - responseCombining: - description: '' - value: - data: null - error: true - errorText: Объединение товаров с разными предметами невозможно - additionalErrors: - error: Объединение товаров с разными предметами невозможно - responseIncorrectRequestFormat: - description: '' - value: - data: null - error: true - errorText: Неправильный формат запроса - additionalErrors: - error: Неправильный формат запроса - responseNonExistentNmId: - description: '' - value: - data: null - error: true - errorText: Указан несуществующий nmID карточки товара - additionalErrors: - error: Указан несуществующий nmID карточки товара - responseNonExistentImt: - description: '' - value: - data: null - error: true - errorText: Указан несуществующий imt - additionalErrors: - error: Указан несуществующий imt - responseDuplicateRequests: - description: '' - value: - data: null - error: true - errorText: Недопустимо отправлять дублирующиеся запросы! - additionalErrors: - error: Недопустимо отправлять дублирующиеся запросы! - responseAllCardsInSameGroup: - description: '' - value: - data: null - error: true - errorText: Все карточки находятся в одной группе - additionalErrors: - error: Все карточки находятся в одной группе - responseCardCreate1: - description: '' - value: - data: null - error: true - errorText: string - additionalErrors: - string: string - InvalidRequestFormatContent: - description: Некорректный формат запроса - value: - data: null - error: true - errorText: Invalid request format - additionalErrors: {} - CardCreatedWithoutVendorCode: - description: КТ нельзя создать без артикула продавца - value: - data: null - error: true - errorText: A card cannot be created without a vendorCode - additionalErrors: {} - CardsVendorCodeUsedInOtherCards: - description: Артикул продавца используется в другой КТ - value: - data: null - error: true - errorText: bad request; Unexpected the specified card's vendor code is used in other cards - additionalErrors: {} - ThisCategoryDoesNotExist: - description: Такого предмета не существует - value: - data: null - error: true - errorText: This category does not exist - additionalErrors: - id: '342342' - responseBodyContentError400: - description: '' - value: - data: null - error: true - errorText: Текст ошибки - additionalErrors: - MoveNmsToTrash: Bad request - responseOK200: - description: '' - value: - data: null - error: false - errorText: '' - additionalErrors: null - responseBody400LenName: - description: '' - value: - data: null - error: true - errorText: Недопустимое значение наименования тега - additionalErrors: - description: Слишком длинное название тега. Разрешено не более 15 символов - responseBodyLimitTag: - description: '' - value: - data: null - error: true - errorText: Исчерпан лимит на создание тегов - additionalErrors: null - responseBodyNameNotExist: - description: '' - value: - data: null - error: true - errorText: Тег с таким именем уже существует - additionalErrors: null - responseNotFound200: - description: '' - value: - data: null - error: true - errorText: Неправильный запрос - additionalErrors: - description: Такого тега не существует у продавца - responseNotFound200Del: - description: '' - value: - data: null - error: true - errorText: Такого тега не существует - additionalErrors: - tagID: '1234' - IncorrectRequest4: - description: '' - value: - data: null - error: true - errorText: Неправильный запрос - additionalErrors: - description: Указаны несуществующие теги - responseBodyTagNotExist: - description: '' - value: - data: null - error: true - errorText: Такого тега не существует - additionalErrors: - tagID: '1234' - responseBodyError500: - description: '' - value: - data: null - error: true - errorText: Внутренняя ошибка. - additionalErrors: null - TokenMissing: - description: Токен отсутствует - value: 'proxy: unauthorized' - TokenInvalid: - description: Токен недействителен - value: 'proxy: invalid token' - TokenNotFound: - description: Токен удален - value: 'proxy: not found' - BodySizeExceedsTheGivenLimit: - description: Превышен лимит объёма данных в запросе - value: body size exceeds the given limit - InvalidQueryParams: - description: Неправильные параметры запроса - value: - data: null - error: true - errorText: Invalid query params - GoodsNumberLimitExceeded: - description: В запросе слишком много товаров - value: - data: null - error: true - errorText: Goods number limit exceeded - DuplicatedNmIdInTask: - description: В запросе несколько одинаковых `nmid` - value: - data: null - error: true - errorText: Duplicated nm_id in task - NoGoodsForProcess: - description: Цены и скидки такие же, как сейчас - value: - data: null - error: true - errorText: No goods for process - FailedToParseData: - description: Не удалось обработать данные, проверьте, что запрос правильный - value: - data: null - error: true - errorText: Failed to parse data - PriceHasDecimalPlaces: - description: У цены дробное значение, исправьте на целое - value: - data: null - error: true - errorText: Price has decimal places - WrongPriceValue: - description: Некорректная цена - value: - data: null - error: true - errorText: Wrong price value - WrongNmValue: - description: Неправильный `nmID` - value: - data: null - error: true - errorText: Wrong nm value - BothDiscountAndPriceAreNotSet: - description: Цена и скидка не установлены - value: - data: null - error: true - errorText: Both discount and price are not set - PriceNotSet: - description: Цена не установлена - value: - data: null - error: true - errorText: Both discount and price are not set - EmptyData: - description: Нет данных - value: - data: null - error: true - errorText: Empty data - NoValidGoodsInTask: - description: Таких товаров или размеров нет (например, их удалили) - value: - data: null - error: true - errorText: No valid goods in task - SortError: - description: Можно сортировать либо по цене, либо по скидке - value: - data: null - error: true - errorText: Can sort only by price or discount at the same time - RequestOptions: - value: - - quantity: 1 - barcode: k - - quantity: 7 - barcode: '1111111111' - ResponseCoefficients: - value: - - date: '2024-04-11T00:00:00Z' - coefficient: -1 - warehouseID: 217081 - warehouseName: Сц Брянск 2 - boxTypeName: Суперсейф - boxTypeID: 6 - - date: '2024-04-11T00:00:00Z' - coefficient: 1 - warehouseID: 204939 - warehouseName: Астана - boxTypeName: QR-поставка с коробами - Response400Coefficients: - value: - status: 400 - title: bad request - detail: warehouseIDs param is incorrect - requestID: '2423423' - origin: supply-api - description: Значение параметра `warehouseIDs` некорректно - OptionsResponse: - value: - result: - - barcode: кrrr - warehouses: null - error: - title: barcode validation error - detail: barcode кrrr is not found - isError: true - - barcode: '123456789' - warehouses: - - warehouseID: 205349 - canBox: true - canMonopallet: false - canSupersafe: false - - warehouseID: 211622 - canBox: false - canMonopallet: true - canSupersafe: false - - warehouseID: 214951 - canBox: true - canMonopallet: false - canSupersafe: false - - warehouseID: 206319 - canBox: true - canMonopallet: false - canSupersafe: false - requestID: kr53d2bRKYmkK2N6zaNKHs - IncorrectRequestBody: - value: - code: IncorrectRequestBody - message: Некорректное тело запроса - WarehouseNameInvalid: - value: - code: WarehouseNameInvalid - message: Некорректное имя склада - IncorrectRequest: - value: - code: IncorrectRequest - message: Переданы некорректные данные - IncorrectParameter: - value: - code: IncorrectParameter - message: Передан некорректный параметр - FailedToUpdateMeta: - value: - code: FailedToUpdateMeta - message: Не удалось обновить метаданные сборочного задания. Убедитесь, что сборочное задание удовлетворяет всем необходимым требованиям (сборочное задание существует, находится в статусе "На сборке", сборочному заданию доступны метаданные см. описание метода **Получить метаданные сборочного задания**) - SupplyHasOrders: - value: - code: SupplyHasOrders - message: Не удалось обработать поставку. Убедитесь, что за ней не осталось закреплённых сборочных заданий. - SupplyHasZeroOrders: - value: - code: SupplyHasZeroOrders - message: Не удалось обработать поставку. Убедитесь, что за ней закреплён хотя бы одно сборочное задание. - SupplyNotClosed: - value: - code: SupplyNotClosed - message: Поставка не передана в доставку - FailedToAddSupplyOrder: - value: - code: FailedToAddSupplyOrder - message: Не удалось закрепить сборочное задание за поставкой. Убедитесь, что сборочное задание и поставка удовлетворяют всем необходимым требованиям. - StatusMismatch: - value: - code: StatusMismatch - message: Несоответствие статусов, проверьте их правильность - StatusChangeNotAllowed: - value: - code: StatusChangeNotAllowed - message: Задание перейдёт в завершенные после сканирования на ПВЗ - FailedToAddSupplyTrbx: - value: - code: FailedToAddSupplyTrbx - message: Не удалось добавить коробку. Убедитесь, что поставка удовлетворяет всем необходимым требованиям. - TokenIsNotApplicable: - description: Используемый токен не применим к данным методам. - value: 'Error ae394f96-e258-432d-af13-a53a3d31f8b0: request rejected, unauthorized: token scope not allowed for this API route' - CantParseDateFrom: - description: Ошибка в запросе - value: - errors: - - can't parse dateFrom - RequestLimitStatistics: - description: Превышено допустимое кол-во запросов в единицу времени - value: - code: 429 - message: error text - CreateResponseData: - value: - data: - taskId: 219eaecf-e532-4bd8-9f15-8036ec1b042d - GetTasksResponseData: - value: - data: - id: cad56ec5-91ec-43a2-b5e8-efcf244cf309 - status: done - MissingDate: - description: Укажите дату - value: - errors: - - 'parameter "date" in query has an error: value is required but missing' - IncorrectDate: - description: Неправильный формат даты - value: - errors: - - can't parse date - IncorrectDateFrom1: - description: Дата начала не может быть раньше 2023 года - value: - errors: - - date year should be greater or equal 2023 - ErrorEarlytDate: - description: Дата не может быть раньше 31.10.2022 - value: - errors: - - date cannot be earlier than 2022-10-31 - BySelectedNmIDRes: - description: '' - value: | - nmID, dt, openCardCount, addToCartCount, ordersCount, ordersSumRub, buyoutsCount, buyoutsSumRub, cancelCount, cancelSumRub, addToCartConversion, cartToOrderConversion, buyoutPercent - 70027655,2023-12-21,1,0,0,0,0,0,0,0,0,0,0 - ... - ... - 150317666,2023-12-21,2,0,0,0,0,0,0,0,0,0,0 - GroupedByObjectsBrandsAndTagsRes: - description: '' - value: | - dt, openCardCount, addToCartCount, ordersCount, ordersSumRub, buyoutsCount, buyoutsSumRub, cancelCount, cancelSumRub, addToCartConversion, cartToOrderConversion, buyoutPercent - 2023-12-21,1,0,0,0,0,0,0,0,0,0,0 - ... - ... - 2023-12-21,2,0,0,0,0,0,0,0,0,0,0 - MissingDateTimeFrom: - description: Укажите начало отчётного периода - value: - title: Bad Request - detail: 'parameter "dateFrom" in query has an error: value is required but missing' - requestId: kr53d2bRKYmkK2N6zaNKHs - origin: seller-analytics-api - MissingDateTimeTo: - description: Укажите конец отчётного периода - value: - title: Bad Request - detail: 'parameter "dateTo" in query has an error: value is required but missing' - requestId: kr53d2bRKYmkK2N6zaNKHs - origin: seller-analytics-api - IncorrectDateTimeFrom: - description: Неправильный формат даты начала отчётного периода - value: - title: Bad Request - detail: can't parse dateFrom - requestId: kr53d2bRKYmkK2N6zaNKHs - origin: seller-analytics-api - IncorrectDateTimeTo: - description: Неправильный формат даты конца отчётного периода - value: - title: Bad Request - detail: can't parse dateTo - requestId: kr53d2bRKYmkK2N6zaNKHs - origin: seller-analytics-api - DateRangeExceeded: - description: Можно получить отчёт максимум за 31 день - value: - title: Bad Request - detail: difference between dateFrom and dateTo should be less or equal 31 days - requestId: kr53d2bRKYmkK2N6zaNKHs - origin: seller-analytics-api - DateRanges: - description: Дата начала должна быть раньше даты конца отчётного периода - value: - title: Bad Request - detail: dateTo should be greater dateFrom - requestId: kr53d2bRKYmkK2N6zaNKHs - origin: seller-analytics-api - ResponseWithReturn: - description: Ответ при return=true - value: - total: 500 - SettingMinusPhrase: - description: Установка минус-фраз - value: - excluded: - - первая фраза - - вторая фраза - RemovingMinusPhrase: - description: Удаление минус-фраз - value: - excluded: [] - RequestWithoutParam: - description: Запрос без параметров - value: - - id: 107024 - RequestAggregate: - description: Запрос с интервалами и датами - value: - - id: 107024 - interval: - begin: '2023-10-21' - end: '2023-10-21' - - id: 107024 - dates: - - '2023-10-22' - - '2023-10-26' - RespStatMediaInterval: - description: Ответ при запросе с интервалами - value: - - interval: - begin: '2023-10-21' - end: '2023-10-25' - stats: - - item_id: 62237 - item_name: Gloria Jeans - category_name: Детям - advert_type: 1 - place: 2 - views: 11849 - clicks: 209 - cr: 0.48 - ctr: 1.76 - date_from: '2023-10-21T00:00:00+03:00' - date_to: '2023-10-27T23:59:59+03:00' - subject_name: Одежда - atbs: 4 - orders: 1 - price: 175000 - cpc: 837.32 - status: 6 - daily_stats: - - date: '2023-10-21T00:00:00+03:00' - app_type_stats: - - app_type: 1 - stats: - - views: 2017 - clicks: 27 - atbs: 1 - ctr: 1.34 - expenses: 175000 - cr1: 1.91 - cr2: 25 - RespStatMediaDates: - description: Ответ при запросе с датами - value: - - dates: - - '2023-10-26' - - '2023-10-22' - stats: - - item_id: 62237 - item_name: Gloria Jeans - category_name: Детям - advert_type: 1 - place: 2 - views: 4584 - clicks: 74 - cr: 1.35 - ctr: 1.61 - date_from: '2023-10-21T00:00:00+03:00' - date_to: '2023-10-27T23:59:59+03:00' - subject_name: Одежда - atbs: 2 - orders: 1 - price: 175000 - cpc: 2364.86 - status: 6 - daily_stats: - - date: '2023-10-22T00:00:00+03:00' - app_type_stats: - - app_type: 1 - stats: - - views: 2384 - clicks: 33 - atbs: 2 - orders: 1 - cr: 3.03 - ctr: 1.38 - expenses: 175000 - cr1: 2.7 - cr2: 50 - RespStatMediaWithoutParam: - description: Ответ при запросе без параметров - value: - - stats: - - item_id: 62237 - item_name: Gloria Jeans - category_name: Детям - advert_type: 1 - place: 2 - views: 11849 - clicks: 209 - cr: 0.48 - ctr: 1.76 - date_from: '2023-10-21T00:00:00+03:00' - date_to: '2023-10-27T23:59:59+03:00' - subject_name: Одежда - atbs: 4 - orders: 1 - price: 175000 - cpc: 837.32 - status: 6 - daily_stats: - - date: '2023-10-21T00:00:00+03:00' - app_type_stats: - - app_type: 1 - stats: - - views: 2017 - clicks: 27 - atbs: 1 - ctr: 1.34 - expenses: 175000 - cr1: 1.91 - cr2: 25 - RespStatMediaAggregate: - description: Ответ при запросе с интервалами и датами - value: - - interval: - begin: '2023-10-21' - end: '2023-10-25' - stats: - - item_id: 62237 - item_name: Gloria Jeans - category_name: Детям - advert_type: 1 - place: 2 - views: 11849 - clicks: 209 - cr: 0.48 - ctr: 1.76 - date_from: '2023-10-21T00:00:00+03:00' - date_to: '2023-10-27T23:59:59+03:00' - subject_name: Одежда - atbs: 4 - orders: 1 - price: 175000 - cpc: 837.32 - status: 6 - daily_stats: - - date: '2023-10-21T00:00:00+03:00' - app_type_stats: - - app_type: 1 - stats: - - views: 2017 - clicks: 27 - atbs: 1 - ctr: 1.34 - expenses: 175000 - cr1: 1.91 - cr2: 25 - - dates: - - '2023-10-26' - - '2023-10-22' - stats: - - item_id: 62237 - item_name: Gloria Jeans - category_name: Детям - advert_type: 1 - place: 2 - views: 4584 - clicks: 74 - cr: 1.35 - ctr: 1.61 - date_from: '2023-10-21T00:00:00+03:00' - date_to: '2023-10-27T23:59:59+03:00' - subject_name: Одежда - atbs: 2 - orders: 1 - price: 175000 - cpc: 2364.86 - status: 6 - daily_stats: - - date: '2023-10-22T00:00:00+03:00' - app_type_stats: - - app_type: 1 - stats: - - views: 2384 - clicks: 33 - atbs: 2 - orders: 1 - cr: 3.03 - ctr: 1.38 - expenses: 175000 - cr1: 2.7 - cr2: 50 - - stats: - - item_id: 62237 - item_name: Gloria Jeans - category_name: Детям - advert_type: 1 - place: 2 - views: 11849 - clicks: 209 - cr: 0.48 - ctr: 1.76 - date_from: '2023-10-21T00:00:00+03:00' - date_to: '2023-10-27T23:59:59+03:00' - subject_name: Одежда - atbs: 4 - orders: 1 - price: 175000 - cpc: 837.32 - status: 6 - daily_stats: - - date: '2023-10-21T00:00:00+03:00' - app_type_stats: - - app_type: 1 - stats: - - views: 2017 - clicks: 27 - atbs: 1 - ctr: 1.34 - expenses: 175000 - cr1: 1.91 - cr2: 25 - CampaignNotFound: - value: Кампания не найдена - ChangingStatusToNewIsNotPossible: - description: '' - value: Перевод в новый статус невозможен - InsufficientFundsToResumeImpressions: - value: Недостаточно средств для возобновления показов. Пополните бюджет кампании. - DisableOrIncreaseDailyLimit: - value: Для возобновления показов отключите или увеличьте дневной лимит. - TopUpCampaignBudget: - value: Пополните бюджет кампании. - ChooseSourceOfFundsDebiting: - value: Не выбран источник списания средств - UnknownPaymentType: - value: Неизвестный тип оплаты - InsufficientFunds: - value: Недостаточно средств - CreatePlacement: - value: Создайте размещение. - TopUpCampaignBudgetToResumeImpressions2: - value: Пополните бюджет кампании для возобновления показов - ErrorInGettingItems: - value: '"Ошибка получения айтемов: {x}", Детали ошибки' - TypePlacementShouldBeImpressions: - value: Тип размещения должен быть по показам - ChangeOnlyPossibleForActiveCampaigns: - value: Изменение возможно только для активных кампаний - SmallCpm: - value: '"Ставка не может быть менее {x} рублей", Минимальная ставка' - RequestWithDate: - description: Запрос с датами - value: - - id: 8960367 - dates: - - '2023-10-07' - - '2023-10-06' - - id: 9876543 - dates: - - '2023-10-07' - - '2023-12-06' - RequestWithInterval: - description: Запрос с интервалами - value: - - id: 8960367 - interval: - begin: '2023-10-08' - end: '2023-10-10' - - id: 78978565 - interval: - begin: '2023-09-08' - end: '2023-09-11' - RequestWithoutIDParam: - description: Запрос только с id кампаний - value: - - id: 8960367 - - id: 9876543 - ResponseWithDate: - description: Ответ при запросе с полем date - value: - - views: 1052 - clicks: 2 - ctr: 0.19 - cpc: 0.09 - sum: 177.7 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - dates: - - '2023-10-07' - - '2023-10-06' - days: - - date: '2023-10-06T03:00:00+03:00' - views: 414 - clicks: 1 - ctr: 0.24 - cpc: 70 - sum: 70 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - apps: - - views: 228 - clicks: 0 - ctr: 0 - cpc: 0 - sum: 38.71 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - nm: - - views: 25 - clicks: 0 - ctr: 0 - cpc: 0 - sum: 4 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - name: Тапочки - nmId: 111111111111 - appType: 1 - boosterStats: - - date: '2023-10-07T00:00:00Z' - nm: 170095908 - avg_position: 348 - advertId: 10524818 - ResponseWithInterval: - description: Ответ при запросе с полем interval - value: - - interval: - begin: '2023-10-08' - end: '2023-10-10' - views: 1052 - clicks: 2 - ctr: 0.19 - cpc: 0.09 - sum: 177.7 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - days: - - date: '2023-10-08T03:00:00+03:00' - views: 730 - clicks: 1 - ctr: 0.14 - cpc: 124.91 - sum: 124.91 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - apps: - - views: 424 - clicks: 1 - ctr: 0.24 - cpc: 72.63 - sum: 72.63 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - nm: - - views: 424 - clicks: 1 - ctr: 0.24 - cpc: 72.63 - sum: 72.63 - atbs: 0 - orders: 0 - cr: 0 - shks: 0 - sum_price: 0 - name: Тапочки - nmId: 1111111111111 - appType: 1 - boosterStats: - - date: '2023-10-08T00:00:00Z' - nm: 1111111111111 - avg_position: 395 - advertId: 10524818 - InvalidSubjectForm: - value: Неверная форма subject - CouldNotGetDataForSearchBar: - value: Не удалось получить данные для поисковой строки - ResponseInvalidCampaignID: - description: Некорректный идентификатор кампании - value: - error: Некорректный идентификатор кампании - EmptyToken: - description: Пустой авторизационный заголовок - value: - code: 401 - message: 07e4668e-a53a3d31f8b0-UKEhtT2359xje unauthorized, rejected; 32cf4a31-4760933a empty Authorization header - InvalidToken: - description: Некорректный токен - value: - code: 401 - message: 07e4668e-a53a3d31f8b0-UKPLv7jyL7H3F unauthorized, rejected; 84bd353bf bad token, malformed - TokenScopeNotAllowedAdv: - description: Используемый тип токена не подходит для этого метода - value: - code: 401 - message: 07e4668e-a53a3d31f8b0-UK2u9L9CdmHVL unauthorized, rejected; 32cf4a31-506fc000 token scope not allowed for this API route - StatusNoChangeAdv: - value: Статус кампании не изменен - IncorrectSupplierIdAdv: - value: Некорректный идентификатор продавца - InvalidRcIdAdv: - value: Некорректный идентификатор РК - IncorrectParamAdv: - value: Некорректное значение параметра param - IncorrectActiveAdv: - value: Некорректное значение параметра active - IncorrectSubjectID: - value: Некорректное значение параметра subjectId - IncorrectTypeAdv: - value: Некорректное значение параметра type - IncorrectUsingMethods: - description: Некорректное использование метода - value: Для получения информации передайте или список кампаний, или набор фильтров - IncorrectStatusAdv: - value: Некорректное значение параметра status - IncorrectName: - value: Некорректное название - IncorrectCpmAdv: - value: Некорректное значение параметра cpm - AmountNotChanged: - value: Размер ставки не изменен - ActivitySubjectGroupNotChanged: - value: Активность предметной группы не изменена - CompanyNameChangeErr: - value: Ошибка изменения названия кампании - ErrorProcessRequestParam: - value: Ошибка обработки параметров запроса - RequestBodyProcessErrorAdv: - value: Ошибка обработки тела запроса - CampaignNotBelongSeller: - value: кампания не принадлежит продавцу - CampaignNotFoundAdv: - value: - error: кампания не найдена - FailedGetAdvertTools: - value: не удалось получить активность инструментов продвижения - AvailableOnlyForAutoCampaign: - description: Доступно только для автоматических кампаний - value: - error: доступно только для автоматических кампаний - AvailableOnlyActiveCampaign: - description: Доступно только для активных кампаний - value: - error: доступно только для активных кампаний - EmptyAuthHeader: - summary: EmptyAuthHeader - description: Пустой заголовок Authorization - value: 'Error ae394f96-e258-432d-af13-a53a3d31f8b0: request rejected, unauthorized: 1; empty Authorization header' - TokenScopeNotAllowed: - summary: TokenScopeNotAllowed - description: Тип используемого токена не подходит для этого метода - value: 'Error ae394f96-e258-432d-af13-a53a3d31f8b0: request rejected, unauthorized: token scope not allowed for this API route' - Response200: - description: Успешно - value: - data: - templates: - - id: id - name: name - text: text - error: false - errorText: '' - additionalErrors: {} - IncorrectTemplateType: - description: Неверный тип шаблона - value: - data: null - error: true - errorText: Неизвестный тип шаблона - additionalErrors: null - TemplateLimitExceeded: - description: Превышен лимит шаблонов - value: - data: null - error: true - errorText: Превышен лимит шаблонов - additionalErrors: null - InvalidTemplateNameLen: - description: Недопустимая длина названия шаблона - value: - data: null - error: true - errorText: Допустимая длина названия шаблона от 1 до 100 символов - additionalErrors: null - InvalidCommentLenTemplate: - description: Недопустимая длина комментария в шаблоне - value: - data: null - error: true - errorText: Допустимая длина комментария в шаблоне от 2 до 1000 символов - additionalErrors: null - InvalidRequest: - description: Неверный запрос - value: - data: null - error: true - errorText: Неверный запрос - additionalErrors: null - EditTemplateError: - description: Не удалось отредактировать шаблон - value: - data: null - error: true - errorText: Не удалось отредактировать шаблон - additionalErrors: null - PostTemplateOK: - description: Успешно - value: - data: - id: '1234' - error: false - errorText: '' - additionalErrors: null - PatchDelRespOK: - description: Успешно - value: - data: true - error: false - errorText: '' - additionalErrors: null - ErrorDeleteBD: - description: Ошибка удаления шаблона из базы данных - value: - data: null - error: true - errorText: Ошибка удаления шаблона из базы данных - additionalErrors: null - FeedbackErr400: - description: '' - value: - data: null - error: true - errorText: Something went wrong - additionalErrors: null - requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 - FeedbackErr403: - description: '' - value: - data: null - error: true - errorText: Ошибка авторизации - additionalErrors: null - requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 - FeedbackErr404: - description: '' - value: - data: null - error: true - errorText: Не найден отзыв id - additionalErrors: null - requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 - CouldNotFixFeedback: - description: '' - value: - data: null - error: true - errorText: Не удалось исправить отзыв - additionalErrors: null - requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 - responseInaccessibleBackGoodError422: - description: '' - value: - data: null - error: true - errorText: Запрос на возврат покупок недоступен - additionalErrors: null - requestId: f551e94d-9bd5-431d-a4b6-b78106fe6348 - responseUnsuccessfullyBackGoodError422: - description: '' - value: - data: null - error: true - errorText: Не удалось выполнить запрос на возврат покупок - additionalErrors: null - requestId: 93ea349d-d0ec-41b0-aaac-a8f5f137a109 - responseDoNotGetFeedback400: - description: '' - value: - data: null - error: true - errorText: Не удалось получить отзыв - additionalErrors: null - requestId: 958d9676-b50c-41d6-b7ce-3c9f0bc3b822 - ReviewRatingNotAvailable: - description: '' - value: - data: null - error: true - errorText: Оценка отзыва недоступна - additionalErrors: null - requestId: 9e414d33-5cdd-44e6-8283-321c5cfecf63 - EmptyFieldsInRequest: - description: Отсутствуют поля оценок в запросе - value: - data: null - error: true - errorText: Пустые поля в запросе - additionalErrors: null - requestId: f538dc5b-bb66-45d0-b9dd-ac11087029e1 - unknownEstimate: - description: '' - value: - data: null - error: true - errorText: Неизвестная оценка, выберите доступную из списка - additionalErrors: null - requestId: 32e010ea-3294-4047-a41b-e6f1f82c7916 - Commission: - summary: Commission - description: Комиссия - value: - report: - - kgvpMarketplace: 15.5 - kgvpSupplier: 12.5 - kgvpSupplierExpress: 10.5 - paidStorageKgvp: 15.5 - parentID: 657 - parentName: Бытовая техника - subjectID: 6461 - subjectName: Оборудование зуботехническое - CommissionChina: - summary: CommissionChina - description: Комиссия Китай - value: - report: - - kgvpChina: 15.5 - parentID: 657 - parentName: 国内设备 - subjectID: 6461 - subjectName: 牙齿矫正设备 - CommissionTurkey: - summary: CommissionTurkey - description: Комиссия Турция - value: - report: - - kgvpTurkey: 15.5 - parentID: 657 - parentName: Home appliance - subjectID: 6461 - subjectName: Dental equipment - CommissionUzbekistan: - summary: CommissionUzbekistan - description: Комиссия Узбекистан - value: - report: - - kgvpUzbekistan: 15.5 - parentID: 657 - parentName: Бытовая техника - subjectID: 6461 - subjectName: Оборудование зуботехническое - securitySchemes: - HeaderApiKey: - type: apiKey - name: Authorization - in: header - parameters: - uploadID: - in: query - name: uploadID - description: ID загрузки - required: true - schema: - type: integer - example: 146567 - limit: - in: query - name: limit - description: "Сколько элементов вывести на одной странице (пагинация). Максимум 1\_000 элементов" - schema: - type: integer - format: uint - example: 10 - minimum: 1 - maximum: 200 - required: true - offset: - in: query - name: offset - description: Сколько элементов пропустить - schema: - type: integer - format: uint - example: 0 - minimum: 0 - nmID: - in: query - name: nmID - description: Артикул Wildberries - schema: - type: integer - example: 1 - required: true - filterNmID: - in: query - description: Артикул Wildberries, по которому искать товар - name: filterNmID - schema: - type: integer - example: 44589768676 - Warehouse: - name: warehouseId - in: path - required: true - description: ID склада продавца - schema: - type: integer - format: int64 - example: 1 - Supply: - name: supplyId - in: path - required: true - description: ID поставки - schema: - type: string - example: WB-GI-1234567 - Trbx: - name: trbxId - in: path - required: true - description: ID короба - schema: - type: string - example: WB-TRBX-1234567 - Order: - name: orderId - in: path - required: true - description: ID сборочного задания - schema: - type: integer - format: int64 - example: 5632423 - Pass: - name: passId - in: path - required: true - description: ID пропуска - schema: - type: integer - format: int64 - example: 45 - Next: - name: next - in: query - required: true - schema: - type: integer - format: int64 - description: Параметр пагинации. Устанавливает значение, с которого надо получить следующий пакет данных. Для получения полного списка данных должен быть равен 0 в первом запросе. Для следующих запросов необходимо брать значения из одноимённого поля в ответе. - Limit: - name: limit - in: query - required: true - schema: - type: integer - minimum: 1 - maximum: 1000 - description: Параметр пагинации. Устанавливает предельное количество возвращаемых данных. - flag: - in: query - name: flag - schema: - type: integer - default: 0 - required: false - description: | - Если параметр `flag=0` (или не указан в строке запроса), при вызове API возвращаются данные, у которых значение поля `lastChangeDate` (дата время обновления информации в сервисе) больше или равно переданному значению параметра `dateFrom`. При этом количество возвращенных строк данных варьируется в интервале от 0 до примерно 100 000.
Если параметр `flag=1`, то будет выгружена информация обо всех заказах или продажах с датой, равной переданному параметру `dateFrom` (в данном случае время в дате значения не имеет). При этом количество возвращенных строк данных будет равно количеству всех заказов или продаж, сделанных в указанную дату, переданную в параметре `dateFrom`. - DateTimeFrom: - in: query - name: dateFrom - required: true - description: | - Начало отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: - - * `2023-12-01` - * `2023-12-01T23:59:59` - * `2023-12-01T00:00:00.12345` - * `2023-12-01T00:00:00` - schema: - type: string - DateTimeTo: - in: query - name: dateTo - required: true - description: | - Конец отчётного периода в формате RFC3339. Можно передать дату или дату со временем. Примеры: - - * `2023-12-01` - * `2023-12-01T23:59:59` - * `2023-12-01T00:00:00.12345` - * `2023-12-01T00:00:00` - schema: - type: string - Date: - in: query - name: date - description: | - Дата, которая входит в отчётный период, `ГГГГ-ММ-ДД`. -
- Чтобы получить данные за всё время с августа 2023, не указывайте этот параметр - schema: - type: string - example: {} - required: true - DateFrom: - in: query - name: dateFrom - description: | - Начало отчётного периода, `ГГГГ-ММ-ДД` - schema: - type: string - example: {} - required: true - DateTo: - in: query - name: dateTo - description: | - Конец отчётного периода, `ГГГГ-ММ-ДД` - schema: - type: string - example: {} - required: true - DateBasic: - in: query - name: date - description: | - Дата, которая входит в отчётный период, `ГГГГ-ММ-ДД` - schema: - type: string - example: {} - DateFromGoodsLabeling: - in: query - name: dateFrom - description: | - Начало отчётного периода, `ГГГГ-ММ-ДД` - schema: - type: string - format: date - example: {} - required: true - DateToGoodsLabeling: - in: query - name: dateTo - description: | - Конец отчётного периода, `ГГГГ-ММ-ДД` - schema: - type: string - format: date - example: {} - required: true - Locale: - name: locale - in: query - schema: - type: string - example: ru - description: | - Язык полей ответа `parentName` и `subjectName`: - - `ru` — русский - - `en` — английский - - `zh` — китайский - is_archive: - in: query - name: is_archive - description: | - Состояние заявки: - * `false` — на рассмотрении - * `true` — в архиве - required: true - schema: - type: boolean - example: true - id: - in: query - name: id - description: ID заявки - schema: - type: string - format: UUID - example: fe3e9337-e9f9-423c-8930-946a8ebef80 - nm_id: - in: query - name: nm_id - description: Артикул WB - schema: - type: integer - example: 196320101 - requestBodies: - SupplierTaskRequest: - required: true - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/Goods' - SupplierTaskRequestSize: - required: true - content: - application/json: - schema: + description: | + Event type: + - `message` — message + - `refund` — refund (deprecated) + enum: + - message + File: type: object properties: - data: - $ref: '#/components/schemas/SizeGoodsBody' - PatchClaimReq: - required: true - description: Ответ на заявку - content: - application/json: - schema: + contentType: + type: string + description: File type + date: + type: string + description: Date of the file upload + downloadID: + description: File ID. [Download the file](./user-communication#tag/Buyers-Chat/paths/~1api~1v1~1seller~1download~1%7Bid%7D/get) + type: string + name: + type: string + description: File name + url: + type: string + description: URL for accessing the file + nullable: false + size: + type: integer + description: File size in bytes + GoodCard: type: object + description: Order information properties: - id: - description: ID заявки - type: string - format: UUID - example: fe3e9337-e9f9-423c-8930-946a8ebef80 - action: - description: Действие с заявкой.
Используйте одно из значений массива `actions` — ответа [метода получения заявок](./#/paths/~1api~1v1~1claims/get) - type: string - example: autorefund1 - responses: - ResponseGoodsLists: - description: Товары - content: - application/json: - schema: + date: + type: string + description: Order date + needRefund: + type: boolean + description: | + Has refund been requested: + - false — not requested + - true — requested + nmID: + type: integer + description: WB article + price: + type: integer + description: Actual price with all discounts applied. Charged to the buyer + priceCurrency: + type: string + description: Currency + rid: + type: string + description: | + Unique order ID.
+ Note: `rid` corresponds to `srid` in the responses of the methods: + - Buyers return applications + - Orders + - Sales + - Goods Return Report + - Realization sales report + size: + type: string + description: Product size + statusID: + type: integer + description: | + Product status: + - `0` — Active product + - `1` — Processed product + - `2` — Product is being assembled + - `3` — Product is in transit + - `4` — Product is awaiting at tne pick-up point + - `5` — Product is with courier + - `10` — Product is archived + - `11` — Product is purchased + - `12` — Product is canceled + - `13` — Refund is processed + - `14` — Product is canceled (out of stock) + Image: type: object + description: Image properties: - data: - type: object - properties: - listGoods: - description: Информация о товарах + date: + type: string + description: Date of the image upload + downloadID: + description: File ID. [Download the file](./user-communication#tag/Buyers-Chat/paths/~1api~1v1~1seller~1download~1%7Bid%7D/get) + type: string + url: + type: string + description: URL for accessing the image + MessageResponse: + type: object + properties: + errors: type: array + description: File upload errors, if any items: - $ref: '#/components/schemas/GoodsList' - ResponseGoodHistories: - description: Информация о товарах в загрузке - content: - application/json: - schema: + type: string + result: + type: object + properties: + addTime: + type: integer + description: Upload time + chatID: + type: string + description: Chat ID + Refund: type: object + deprecated: true + description: Product refund properties: - data: - type: object - properties: - uploadID: + actionType: + $ref: '#/components/schemas/RefundActionType' + price: type: integer - description: ID загрузки - example: 3235236546 - historyGoods: + description: Order price + priceCurrency: + type: string + description: Currency + rid: + type: string + description: Unique WB order ID + RefundActionType: + description: | + Seller's action regarding the refund: + - `sellerRequestRefund` — seller requested a refund of the product + - `sellerRejectRefund` — seller rejected the refund of the product + - `sellerAcceptFullRefund` — seller approved the refund of the product + - `sellerAcceptRefundInOffice` — seller approved the refund of the product at the pick-up point + type: string + enum: + - sellerRequestRefund + - sellerRejectRefund + - sellerAcceptFullRefund + - sellerAcceptRefundInOffice + Sender: + type: string + description: | + Sender: + - `client` — buyer + - `seller` — seller + - `wb` — Wildberries + enum: + - client + - seller + - wb + EventsResponse: + type: object + properties: + result: + $ref: '#/components/schemas/EventsResult' + errors: + description: Errors, if any + nullable: true type: array - description: Информация о товарах в загрузке items: - $ref: '#/components/schemas/GoodHistory' - ResponseGoodBufferHistories: - description: Информация о товарах в загрузке - content: - application/json: - schema: + type: string + EventsResult: type: object properties: - data: - type: object - properties: - uploadID: + next: type: integer - description: ID загрузки - example: 3235236546 - bufferGoods: + description: Paginator. Retrieve the next data set starting from this moment + format: Unix timestamp + newestEventTime: + description: Newest response event time + type: string + format: RFC 3339 + oldestEventTime: + description: Oldest response event time + type: string + format: RFC 3339 + totalEvents: + type: integer + description: Number of events + events: type: array - description: Информация о товарах в загрузке items: - $ref: '#/components/schemas/GoodBufferHistory' - error: - type: boolean - description: Флаг ошибки - example: false - errorText: + $ref: '#/components/schemas/Event' + parameters: + Warehouse: + name: warehouseId + in: path + required: true + description: The supplier's warehouse ID + schema: + type: integer + format: int64 + example: 2 + uploadID: + in: query + name: uploadID + description: Download ID + required: true + schema: + type: integer + example: 146567 + limit: + in: query + name: limit + description: Number of elements per page (pagination). Maximum 1,000 elements + schema: + type: integer + format: uint + example: 10 + minimum: 1 + maximum: 200 + required: true + offset: + in: query + name: offset + description: From which element to start outputting data + schema: + type: integer + format: uint + minimum: 0 + example: 0 + nmID: + in: query + name: nmID + description: WB article + schema: + type: integer + example: 1 + required: true + filterNmID: + in: query + description: WB article to search + name: filterNmID + schema: + type: integer + example: 44589768676 + OrderID: + name: orderId + in: path + required: true + description: Order ID + schema: + type: integer + format: int64 + example: 5632423 + Supply: + name: supplyId + in: path + required: true + description: Supply ID + schema: type: string - description: Текст ошибки - example: '' - ResponseTaskHistory: - description: Состояние загрузки - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/SupplierTaskMetadata' - error: - type: boolean - description: Флаг ошибки - example: false - errorText: - description: "Текст ошибки\n\n
\n

Ошибка The product is in quarantine возникает, если новая цена со скидкой хотя бы в\_3 раза меньше старой. Вы можете изменить цену или скидку с помощью API либо вывести товар из\_карантина в\_личном кабинете

\n
\n" + example: WB-GI-1234567 + Trbx: + name: trbxId + in: path + required: true + description: Box ID + schema: type: string - example: The product is in quarantine - ResponseTaskBuffer: - description: Состояние загрузки - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/SupplierTaskMetadataBuffer' - error: + example: WB-TRBX-1234567 + Order: + name: orderId + in: path + required: true + description: Order ID + schema: + type: integer + format: int64 + example: 5632423 + Pass: + name: passId + in: path + required: true + description: Pass ID + schema: + type: integer + format: int64 + example: 45 + Next: + name: next + in: query + required: true + schema: + type: integer + format: int64 + description: Pagination parameter. Sets the value from which to retrieve the next batch. It should start at 0 to get the full list of data. For the subsequent requests, you must take the value from the `next` field in the response. + Limit: + name: limit + in: query + required: true + schema: + type: integer + minimum: 1 + maximum: 1000 + description: Pagination parameter. Sets the limit for the amount of data returned. + inAction: + in: query + name: inAction + description: | + Participates in the promotion: + - `true` — yes + - `false` — no + schema: type: boolean - description: Флаг ошибки - example: false - errorText: + example: true + default: false + required: true + promotionID: + in: query + name: promotionID + description: Promotion ID + schema: + type: integer + example: 1 + required: true + limitNomenclature: + in: query + name: limit + description: Number of requested products + schema: + type: integer + format: uint + minimum: 1 + maximum: 1000 + example: 10 + promotionIDs: + in: query + description: IDs of the promotions for which information should be returned + name: promotionIDs + required: true + schema: type: string - description: Текст ошибки - example: '' - ResponseSizeLists: - description: Размеры - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - listGoods: - description: Размеры товара - type: array - items: - $ref: '#/components/schemas/SizeGood' - error: - description: Флаг ошибки + items: + type: integer + example: + - 1 + - 3 + - 64 + uniqueItems: true + minItems: 1 + maxItems: 100 + startDateTime: + in: query + name: startDateTime + description: Period start, format `YYYY-MM-DDTHH:MM:SSZ` + required: true + schema: + type: string + format: RFC3339 + example: '2023-09-01T00:00:00Z' + endDateTime: + in: query + name: endDateTime + description: Period end, format `YYYY-MM-DDTHH:MM:SSZ` + required: true + schema: + type: string + format: RFC3339 + example: '2024-08-01T23:59:59Z' + allPromo: + in: query + name: allPromo + description: | + Show promotions: + - `false` — available for participating + - `true` — all promotion + schema: + type: boolean + default: false + required: true + limitPromotion: + in: query + name: limit + description: Number of requested promotions + schema: + type: integer + format: uint + minimum: 1 + maximum: 1000 + example: 10 + is_archive: + in: query + name: is_archive + description: | + Application status: + * `false` — under review + * `true` — in archive + required: true + schema: type: boolean - example: false - errorText: - description: Текст ошибки + example: true + id: + in: query + name: id + description: Application ID + schema: type: string - SuccessTaskResponse: - description: Успешно - content: - application/json: - schema: - $ref: '#/components/schemas/TaskCreated' - type: object - properties: - details: - type: array - items: - type: object - properties: - nmID: - type: integer - description: Артикул Wildberries - example: 123456789 - sum: - type: integer - description: Сумма заказа - example: 3540 - currency: - type: string - description: Валюта заказа - example: RUB - dateFrom: - type: string - description: Начало отчётного периода - example: {} - dateTo: - type: string - description: Конец отчётного периода - example: {} - Responses401: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseError' - examples: - AuthorizationError: - description: Ошибка авторизации - value: + format: UUID + example: fe3e9337-e9f9-423c-8930-946a8ebef80 + nm_id: + in: query + name: nm_id + description: WB article + schema: + type: integer + example: 196320101 + requestBodies: + SupplierTaskRequest: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Goods' + SupplierTaskRequestSize: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/SizeGoodsBody' + SupplierTaskRequestClubDisc: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/ClubDisc' + PromotionsSupplierTaskRequest: + required: true + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + promotionID: + type: integer + description: Promotion ID + example: 1 + minimum: 1 + uploadNow: + type: boolean + example: true + description: | + Set discount: + - `true` — now + - `false` — at the start of the promotion + nomenclatures: + type: array + description: Nomenclature IDs that can be added to the promotion + example: + - 1 + - 3 + - 642 + items: + type: integer + minimum: 1 + minItems: 1 + maxItems: 1000 + uniqueItems: true + PatchClaimReq: + required: true + description: Application answer + content: + application/json: + schema: + type: object + properties: + id: + description: Application ID + type: string + format: UUID + example: fe3e9337-e9f9-423c-8930-946a8ebef80 + action: + description: Application action.
Use one of the `actions` array values from the response of the getting [buyers applications](./user-communication#tag/Buyers-Returns/paths/~1api~1v1~1claims/get) method + type: string + example: rejectcustom + comment: + description: Comment.
Only when `"action":"rejectcustom"` or `"action":"approvecc1"`. When `"action":"rejectcustom"` this parameter is required + type: string + minLength: 10 + maxLength: 1000 + example: The photo is not related to the product in the application + required: + - id + - action + responses: + 'Response401': + description: Unauthorized + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: Error title + detail: + type: string + description: Error details + code: + type: string + description: Internal error code + requestId: + type: string + description: Unique request ID + origin: + type: string + description: WB internal service ID + status: + type: number + description: HTTP status code + statusText: + type: string + description: Text of the HTTP status code + timestamp: + type: string + format: date-time + description: Request date and time + example: + title: unauthorized + detail: 'token problem; token is malformed: could not base64 decode signature: illegal base64 data at input byte 84' + code: 07e4668e--a53a3d31f8b0-[UK-oWaVDUqNrKG]; 03bce=277; 84bd353bf-75 + requestId: 7b80742415072fe8b6b7f7761f1d1211 + origin: s2s-api-auth-catalog + status: 401 + statusText: Unauthorized + timestamp: '2024-09-30T06:52:38Z' + 'Response429': + description: Too many requests + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: Error title + detail: + type: string + description: Error details + code: + type: string + description: Internal error code + requestId: + type: string + description: Unique request ID + origin: + type: string + description: WB internal service ID + status: + type: number + description: HTTP status code + statusText: + type: string + description: Text of the HTTP status code + timestamp: + type: string + format: date-time + description: Request date and time + example: + title: too many requests + detail: limited by c122a060-a7fb-4bb4-abb0-32fd4e18d489 + code: 07e4668e-ac2242c5c8c5-[UK-4dx7JUdskGZ] + requestId: 9d3c02cc698f8b041c661a7c28bed293 + origin: s2s-api-auth-catalog + status: 429 + statusText: Too Many Requests + timestamp: '2024-09-30T06:52:38Z' + NotFound: + description: Not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: NotFound + message: Не найдено + AccessDenied: + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: AccessDenied + message: Доступ запрещён + ResponseGoodsLists: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + listGoods: + description: Product data + type: array + items: + $ref: '#/components/schemas/GoodsList' + ResponseGoodHistories: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + uploadID: + type: integer + description: Upload ID + example: 3235236546 + historyGoods: + type: array + description: Data of products in the upload + items: + $ref: '#/components/schemas/GoodHistory' + ResponseGoodBufferHistories: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + uploadID: + type: integer + description: Upload ID + example: 3235236546 + nullable: true + bufferGoods: + type: array + description: Data of products in the upload + items: + $ref: '#/components/schemas/GoodBufferHistory' + error: + type: boolean + description: Error flag + example: false + errorText: + type: string + description: Error text + example: '' + ResponseTaskHistory: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/SupplierTaskMetadata' + error: + type: boolean + description: Error flag + example: false + errorText: + description: "Error text\n\n
\n The new price is several times lower than the current price. Item has been moved to Price Quarantine error means that new price with discount is at least 3 times less than the previous one. You can edit price/discount using API or remove the price out of quarantine in\_your account\n
\n" + type: string + example: The new price is several times lower than the current price. Item has been moved to Price Quarantine + ResponseTaskBuffer: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/SupplierTaskMetadataBuffer' + error: + type: boolean + description: Error flag + example: false + errorText: + type: string + description: Error text + example: '' + ResponseSizeLists: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + listGoods: + description: Product sizes + type: array + items: + $ref: '#/components/schemas/SizeGood' + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error text + type: string + SuccessTaskResponse: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TaskCreated' + ResponseQuarantineGoods: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + nullable: true + type: object + properties: + quarantineGoods: + description: Information about products in quarantine + type: array + items: + $ref: '#/components/schemas/QuarantineGoods' + error: + description: Error flag + type: boolean + example: false + errorText: + description: Error text + type: string + example: '' + Responses208: + description: Upload already exists + content: + application/json: + schema: + $ref: '#/components/schemas/RequestAlreadyExistsError' + examples: + This task already exists: + description: Upload already exists + value: + data: + id: 1111111 + alreadyExists: true + error: false + errorText: This task already exists + StatusNotAcceptable: + description: Update of the inventory is blocked + content: + application/json: + schema: + properties: + code: + type: string + description: Error code + nullable: false + example: StatusNotAcceptable + message: + type: string + description: Error description + nullable: false + example: Обновление остатков заблокировано в связи с баном поставщика + data: + type: object + description: Additional error data + nullable: true + ErrParameterValuesIncorrect: + description: Error processing request parameters + content: + application/json: + schema: + type: object + properties: + errorText: + type: string + description: Error text + examples: + PromotionCompletedOrNotExist: + description: The promotion has been completed, or the promotion with this id does not exist + value: + errorText: Unprocessable entity + ErrorWrongParameters: + description: Bad request + content: + application/json: + schema: + type: object + properties: + errorText: + type: string + description: Error text + example: Invalid query params + ResponsePromotionsGoodsLists: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + nomenclatures: + type: array + items: + $ref: '#/components/schemas/PromotionsGoodsList' + UploadSuccessResponse: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + alreadyExists: + description: Upload with this data already exists + type: boolean + example: false + uploadID: + description: Upload ID + type: integer + example: 11 + UnprocessableEntity: + description: Error processing request parameters + content: + application/json: + schema: + type: object + properties: + errorText: + type: string + example: Unprocessable entity + PromotionsGetByIDSuccessResponse: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + promotions: + type: array + description: Promotions list + items: + type: object + properties: + id: + type: integer + description: Promotion ID + example: 123 + name: + type: string + description: Promotion name + example: ХИТЫ ГОДА + description: + type: string + description: Promotion description + example: В акции принимают участие самые популярные товары 2023 года. Карточки товаров будут выделены плашкой «ХИТ ГОДА», чтобы покупатели замечали эти товары среди других. Также они будут размещены под баннерами на главной странице и примут участие в PUSH-уведомлениях. С ценами для вступления в акцию вы можете ознакомиться ниже. + advantages: + type: array + description: Promotion advantages + example: + - Плашка + - Баннер + - Топ выдачи товаров + items: + type: string + startDateTime: + type: string + example: '2023-06-05T21:00:00Z' + description: Promotion start + endDateTime: + type: string + example: '2023-06-05T21:00:00Z' + description: Promotion end + inPromoActionLeftovers: + description: Number of products with remaining stock participating in the promotion + type: integer + example: 45 + inPromoActionTotal: + type: integer + description: Total number of products participating in the promotion + example: 123 + notInPromoActionLeftovers: + type: integer + example: 3 + description: Number of products with remaining stock that are not participating in the promotion + notInPromoActionTotal: + type: integer + example: 10 + description: Total number of products that are not participating in the promotion + participationPercentage: + type: integer + description: Products already participating in the promotion, %. Calculation based on the products participating in the promotion and with the remaining stock + example: 10 + type: + type: string + enum: + - regular + - auto + example: auto + description: | + Promotion type: + - `regular` — promotion + - `auto` — auto promotion + exceptionProductsCount: + type: integer + format: uint + example: 10 + description: | + Number of products excluded from the auto promotion before it starts. Only for `"type": "auto"`. +
At the start of the promotion, these products will automatically be without a discount + ranging: + type: array + description: Ranking (if enabled) + items: + type: object + properties: + condition: + type: string + description: | + Type of [ranking](https://seller.wildberries.ru/help-center/article/A-385): + - `productsInPromotion` — only the seller's products participating in the promotion will be boosted + - `calculateProducts` — any of the seller's products proposed for participation in the promotion will be boosted + - `allProducts` — all of the seller's products will be boosted + participationRate: + type: integer + format: uint + minimum: 0 + maximum: 100 + description: Percentage of seller's products needed to advance to the next ranking level, % + boost: + type: integer + format: uint + description: Current search boost level, % + example: + - condition: productsInPromotion + participationRate: 10 + boost: 7 + - condition: calculateProducts + participationRate: 20 + boost: 17 + - condition: allProducts + participationRate: 35 + boost: 30 + PromotionsSuccessResponse: + description: Success + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + promotions: + type: array + items: + type: object + properties: + id: + type: integer + example: 123 + description: Promotion ID + name: + type: string + example: скидки + description: Promotion name + startDateTime: + type: string + format: RFC3339 + example: '2023-06-05T21:00:00Z' + description: Promotion start + endDateTime: + type: string + format: RFC3339 + example: '2023-06-05T21:00:00Z' + description: Promotion end + type: + type: string + enum: + - regular + - auto + description: | + Promotion type: + - `regular` — promotion + - `auto` — auto promotion + ErrorFailedParseData: + description: Bad request + content: + application/json: + schema: + type: object + properties: + errorText: + type: string + description: Error text + example: Failed to parse data + GetClaimsSuccessResponse: + description: Success + content: + application/json: + schema: + type: object + example: + claims: + - id: fe3e9337-e9f9-423c-8930-946a8ebef80 + claim_type: 1 + status: 2 + status_ex: 8 + nm_id: 196320101 + user_comment: Длина провода не соответствует описанию + wb_comment: "Продавец одобрил вашу заявку на возврат. В течение 14 дней принесите товар в определённый пункт выдачи — всё зависит от того, как вы получали заказ:\r\n\r\n∙ В пункте выдачи. Тогда нужно будет вернуть в тот же пункт по тому же адресу. \r\n∙ Курьером. Зайдите в раздел «Покупки» на сайте — там будет адрес пункта, в который нужно принести товар.\r\n\r\nВозьмите с собой пакет со штрих-кодом, в котором был товар. Если вы его потеряли или выбросили — ничего страшного, мы всё равно сможем провести возврат. Но в будущем, пожалуйста, сохраняйте этот пакет. \r\n\r\nДеньги придут на вашу карту или счёт в течение 10 дней после возврата товара на склад.\r\n\r\nЕсли у вас крупногабаритный товар, то для его возврата вызовите курьера через раздел «Доставки»." + dt: '2024-03-26T17:06:12.245611' + imt_name: Кабель 0.5 м, 3797 + order_dt: '2020-10-27T05:18:56' + dt_update: '2024-05-10T18:01:06.999613' + photos: + - //photos.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/1.webp + - //photos.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/2.webp + video_paths: + - //video.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/1.mp4 + actions: + - autorefund1 + - approve1 + price: 157 + currency_code: '643' + srid: v5o_7143225816503318733.0.0 + total: 31 + properties: + claims: + type: array + description: Applications + items: + type: object + properties: + id: + type: string + description: Application ID + format: UUID + claim_type: + type: integer + description: | + Application source: + * `1` — buyers portal + * `3` — chat + status: + type: integer + description: | + Buyer return decision: + * `0` — under review + * `1` — refusal + * `2` — approved + status_ex: + type: integer + description: | + Product status: + * `0` — application under review + * `1` — product stays with buyer (Application rejected)r + * `2` — buyer returns product to WB, product sent for disposal + * `5` — product stays with buyer (Application approved) + * `8` — product will be returned to sale after WB inspection + * `10` — product returned to seller + nm_id: + type: integer + description: WB article + user_comment: + type: string + maxLength: 1000 + description: Buyer comment + wb_comment: + nullable: true + type: string + maxLength: 10000 + description: Answer to the buyer in Russian + dt: + type: string + format: date-time + description: Date and time the application was submitted by the buyer + imt_name: + nullable: true + type: string + description: Product name + order_dt: + type: string + format: date-time + description: Order date and time + dt_update: + type: string + format: date-time + description: Date and time the application was reviewed. For the application that has not been reviewed — date and time the application was submitted + photos: + type: array + description: Photos from buyer application + minItems: 0 + maxItems: 10 + items: + type: string + format: WEBP + video_paths: + type: array + description: Videos from buyer application + minItems: 0 + maxItems: 1 + items: + type: string + format: MP4 + actions: + type: array + description: | + [Seller's answer](./user-communication#tag/Buyers-Returns/paths/~1api~1v1~1claim/patch) options.
Rejected applications can be reconsidered. If the array is empty, the application cannot be processed.
+ * `approve1` — approve with defect check.
Money will be refunded to the buyer after the product is returned. The product will be checked at the warehouse. If a defect/packing error is confirmed, the product will be sent to the seller. If the defect/packing error is not confirmed, the product will be returned to sale. +
Not applicable for the [In-Store Pickup](./in-store-pickup) scheme. + * `approve2` — approve and return the product.
Money will be refunded to the customer after the product is returned. The product will be sent to the seller. +
Not applicable for the [In-Store Pickup](./in-store-pickup) scheme. + * `autorefund1` — approve without product return.
The product will remain with the customer. The money for the product will be refunded to the customer without returning the product. + * `reject1` — reject with response template:
Брак не обнаруженЗдравствуйте!
Продавец рассмотрел и отклонил вашу заявку: он не нашёл брак, который вы описали, на фото или видео.
Если брак производственный, можете: — попробовать решить вопрос напрямую в чате с продавцом — в разделе «Покупки» нажмите на три точки возле товара и выберите «Задать вопрос продавцу», — обратиться в сервисный центр или независимую экспертизу, чтобы получить заключение о браке. После экспертизы отправьте скан заключения, создав новую заявку на проверку товара.
Если дефект непроизводственный, то можно оспорить решение продавца, для этого откройте в приложении раздел «Возврат товара по браку» или на сайте раздел «Брак или другая проблема», выберите заявку, нажмите кнопку «Оспорить решение» и напишите, почему вы не согласны. Мы всё проверим и напишем вам.
+ * `reject2` — reject with response template:
Добавить фото/видеоЗдравствуйте!
К сожалению, продавец не смог подтвердить брак, повреждение или несоответствие описанию. Отправьте новую заявку и проверьте, что дефект виден на фото и видео, а сами они хорошего качества. Напомним, что нужно прикрепить к заявке:
1. Фото товара целиком.
2. Фото и видео брака.
3. Фото с биркой или другой маркировкой товара.
4. Фото упаковки со штрих-кодом, если она осталась.
5. Комментарий, в котором подробно описано, что сломано и как вы это выяснили.
+ * `reject3` — reject with response template:
Направить в сервисный центрЗдравствуйте!
Мы внимательно прочитали заявку, проверили фото и видео. К сожалению, мы не нашли брак, повреждение или несоответствие описанию в вашем товаре.
Обратитесь напрямую в сервисный центр — его адрес и контакты есть на сайте производителя или на гарантийном талоне. Там проведут окончательную проверку товара и выдадут вам акт. Если центр нашёл брак, то отправьте этот акт в чат на нашем сайте.
+ * `rejectcustom` — reject with a comment.
The comment is passed in the `comment` parameter. + * `approvecc1` — approve the request for returning the product to the seller's store.
You can provide a comment (e.g., contact phone number or operating hours of your returns department) in the `comment` parameter. Upon completion of the return, you need to respond to the request with `"action":"confirmreturngoodcc1"` or `"action":"rejectcustom"`.
Applicable only for the [In-Store Pickup](./in-store-pickup) scheme. + * `confirmreturngoodcc1` — confirm receipt of the product from the buyer.
Applicable only for the [In-Store Pickup](./in-store-pickup) scheme. + items: + type: string + price: + type: number + description: Actual price with all discounts applied. Charged to the buyer + currency_code: + type: string + description: Price currency code + srid: + type: string + description: Unique order ID for which a product claim was created + total: + type: integer + description: Number of applications matching the query parameters. Except `limit` and `offset` + Error400GetClaims: + description: Bad request + content: + application/problem+json: + schema: + type: object + properties: + title: + type: string + description: Error ID + example: Invalid query params + detail: + description: Error description + type: string + example: 'Failed to deserialize query string: missing field `is_archive`' + requestId: + description: Request ID + type: string + example: e0aedc10-9789-49c1-9a83-d8422b4703dc + Error400PatchClaim: + description: Bad request + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: Error ID + example: Validation error + detail: + description: Error description + type: string + example: 'Input model is not valid; Details: The Action field is required.' + requestId: + description: Request ID + type: string + example: 0HN3PI6JUGFSL:00000004 + examples: + WarehouseNameInvalid: + value: + message: Incorrect warehouse name + StoreIsProcessing: + description: The warehouse is in the process of being updated or deleted. Try again after a few seconds. + value: + code: StoreIsProcessing + message: The store is processing + StoreIsProcessing1: + description: The warehouse is in the process of being updated or deleted. Try again after a few seconds. + value: + - code: StoreIsProcessing + message: The store is processing + IncorrectRequestBody: + value: + message: Incorrect request body + IncorrectRequest: + value: + message: Incorrect request parameters + SubjectDBSRestriction: + description: The product category cannot be sold with 'Fulfillment By Wildberries' + value: + - code: SubjectDBSRestriction + message: The product category cannot be sold with 'Fulfillment By Wildberries'. + data: + sku: skuTest1 + stock: 0 + SubjectFBSRestriction: + description: The product category cannot be sold with 'Delivery By Supplier' + value: + - code: SubjectFBSRestriction + message: The product category cannot be sold with 'Delivery By Supplier'. + data: + sku: skuTest2 + stock: 1 + UploadDataLimit: + description: Upload limit exceeded + value: + - code: UploadDataLimit + message: Upload limit exceeded. + data: + sku: skuTest2 + stock: 100001 + CargoWarehouseRestrictionMGT: + description: The selected warehouse is not suitable for goods with the type "LCL (Less than Container Load)". Upload the balances to the warehouse without the ODC or CD+ mark + value: + - code: CargoWarehouseRestrictionMGT + message: The selected warehouse is not suitable for goods with the type "LCL (Less than Container Load)". Upload the balances to the warehouse without the ODC or CD+ mark + data: + sku: skuTest3 + stock: 10 + CargoWarehouseRestrictionSGT: + description: The selected warehouse is not suitable for goods with the type "ODC". Upload the balances to the warehouse marked - ODC + value: + - code: CargoWarehouseRestrictionSGT + message: The selected warehouse is not suitable for goods with the type "ODC". Upload the balances to the warehouse marked - ODC + data: + sku: '2042688657617' + stock: 0 + CargoWarehouseRestrictionSGTKGTPlus: + description: The selected warehouse is not suitable for goods with the type "ODC/CD+". Upload the balances to the warehouse with the label - ODC or CD+ + value: + - code: CargoWarehouseRestrictionSGTKGTPlus + message: The selected warehouse is not suitable for goods with the type "ODC/CD+". Upload the balances to the warehouse with the label - ODC or CD+ + data: + sku: skuTest3 + amount: 10 + CargoWarehouseRestrictionKGTPlus: + description: The selected warehouse is not suitable for goods with the type "CD+". Upload the balances to the warehouse marked - CD+ + value: + - code: CargoWarehouseRestrictionKGTPlus + message: The selected warehouse is not suitable for goods with the type "CD+". Upload the balances to the warehouse marked - CD+ + data: + sku: skuTest3 + stock: 10 + NotFound: + description: Not found + value: + - code: NotFound + message: Not found + data: + sku: skuTest4 + stock: 10 + IncorrectParameter: + value: + message: An incorrect parameter was passed + creatingOneCard: + description: '' + value: + - subjectID: 105 + variants: + - vendorCode: АртикулПродавца + title: Наименование товара + description: Описание товара + brand: Бренд + dimensions: + length: 12 + width: 7 + height: 5 + weightBrutto: 1.242 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - techSize: S + wbSize: '42' + price: 5000 + skus: + - '88005553535' + creatingMergedCards: + description: '' + value: + - subjectID: 3091 + variants: + - vendorCode: АртикулПродавца11 + title: Наименование товара 1 + description: Описание товара 1 + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + weightBrutto: 6.24 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - skus: + - '111111111133111' + - vendorCode: АртикулПродавца22 + title: Наименование товара 2 + description: Описание товара 2 + brand: БрендДругой + dimensions: + length: 55 + width: 40 + height: 15 + weightBrutto: 6.241 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - skus: + - '111111111441111' + creatingGroupOfIndividualCards: + description: '' + value: + - subjectID: 3091 + variants: + - vendorCode: АртикулПродавца1 + title: Наименование товара 1 + description: Описание товара 1 + brand: Бренд + dimensions: + length: 55 + width: 40 + height: 15 + weightBrutto: 6 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - skus: + - '1111111111111' + - subjectID: 105 + variants: + - vendorCode: Артикул продавца 2 + title: Наименование товара 2 + description: Описание товара 2 + brand: Бренд + dimensions: + length: 14 + width: 5 + height: 4 + weightBrutto: 0.94 + characteristics: + - id: 12 + value: + - Turkish flag + - id: 25471 + value: 1200 + - id: 14177449 + value: + - red + sizes: + - techSize: S + wbSize: '42' + price: 5000 + skus: + - '2222222222222' + responseIncorrectBeginDate: + description: Incorrect start date + value: + error: Incorrect start date + responseIncorrectEndDate: + description: Incorrect end date + value: + error: Incorrect end date + responseExceededLimit: + description: '' + value: + additionalErrors: + error: Maximum 30 cards + errorText: Maximum 30 cards + responseCombining: + description: '' + value: + additionalErrors: + error: You can not merge products with different subjects + errorText: You can not merge products with different subjects + responseIncorrectRequestFormat: + description: '' + value: + additionalErrors: + error: Incorrect request + errorText: Incorrect request + responseNonExistentNmId: + description: '' + value: + additionalErrors: + error: nmID not found + errorText: nmID not found + responseNonExistentImt: + description: '' + value: + additionalErrors: + error: imt not found + errorText: imt not found + responseDuplicateRequests: + description: '' + value: + additionalErrors: + error: Duplicate requests + errorText: Duplicate requests + responseAllCardsInSameGroup: + description: '' + value: + additionalErrors: + error: All cards are in the same group + errorText: All cards are in the same group + responseCardCreate1: + description: '' + value: data: null error: true - errorText: Authorization error - UnknownMethod: - description: Неизвестный метод - value: - data: - type: object - nullable: true + errorText: string + additionalErrors: + string: string + InvalidRequestFormatContent: + description: Incorrect request + value: + errorText: Incorrect request + CardCreatedWithoutVendorCode: + description: Seller's article is required + value: + errorText: vendorCode is required + CardsVendorCodeUsedInOtherCards: + description: Seller's article used in another card + value: + errorText: Seller's article used in another card + ThisCategoryDoesNotExist: + description: Subject not found + value: + data: null + error: true + errorText: This category does not exist + additionalErrors: + id: '342342' + responseBodyContentError400: + description: Bad request + value: + errorText: Error text + responseOK200: + description: Success + value: + data: null + error: false + errorText: '' + additionalErrors: null + responseBody400LenName: + description: Bad request + value: + addditionalErrors: + description: Tag name too long. No more than 15 characters allowed + errorText: Invalid tag name value + responseBodyLimitTag: + description: '' + value: + errorText: Tag creation limit reached + responseBodyNameNotExist: + description: '' + value: + errorText: A tag with this name already exists + responseNotFound200: + description: Success + value: + additionalErrors: + description: Such a tag does not exist for the seller + errorText: Bad request + responseNotFound200Del: + description: '' + value: + errorText: Such a tag does not exist + IncorrectRequest4: + description: '' + value: + additionalErrors: + description: Non-existent tags specified + errorText: Bad request + responseBodyTagNotExist: + description: '' + value: + errorText: Such a tag does not exist + BodySizeExceedsTheGivenLimit: + description: The request body size exceeds the given limit + value: body size exceeds the given limit + InvalidRequestParameters: + description: Incorrect request parameters + value: + data: null + error: true + errorText: Invalid request parameters + UploadLimitExceeded: + description: Too many products (it should be read `1000 items`) + value: + data: null + error: true + errorText: 'Upload limit exceeded: You can upload a maximum of 10 000 items' + DuplicateItemNos: + description: Duplicated `nmID` in the request + value: + data: null + error: true + errorText: Duplicate item Nos. + DuplicateSizeIDs: + description: Duplicated `sizeID` in the request + value: + data: null + error: true + errorText: Duplicate size IDs + TheSpecifiedPricesAndDiscountsAreAlreadySet: + description: No price or discount changes + value: + data: null + error: true + errorText: The specified prices and discounts are already set + TheSpecifiedPricesAreAlreadySet: + description: No price changes + value: + data: null + error: true + errorText: The specified prices and discounts are already set + InvalidDataFormat: + description: Data can not be processed, check the request + value: + data: null + error: true + errorText: Invalid data format + PriceShouldBeAWholeNumber: + description: Price has decimal value, but it should be integer + value: + data: null + error: true + errorText: Price should be a whole number + InvalidPriceValue: + description: Incorrect price + value: + data: null + error: true + errorText: Invalid price value + InvalidDiscountValue: + description: Incorrect discount + value: + data: null + error: true + errorText: Invalid discount value + InvalidItemNo: + description: Incorrect `nmID` + value: + data: null + error: true + errorText: Invalid item No. + InvalidSize: + description: Incorrect `sizeID` + value: + data: null + error: true + errorText: Invalid size + PriceAndDiscountNotSpecified: + description: Both price and discount are not specified + value: + data: null error: true - errorText: Unknown method - AccessDenied: - description: Доступ запрещён - value: + errorText: Price and discount not specified + PriceNotSpecified: + description: Price is not specified + value: + data: null + error: true + errorText: Price and discount not specified + EmptyData: + description: Empty data + value: + data: null + error: true + errorText: Empty data + AllItemNosAreSpecifiedIncorrectlyOrPricesAndDiscounts: + description: No products (for example, they were deleted), or no price or discount changes + value: + data: null + error: true + errorText: All item Nos. are specified incorrectly, or the specified prices and discounts are already set + AllItemNosAreSpecifiedIncorrectlyOrPrices: + description: No products or sizes (for example, they were deleted), or no price changes + value: + data: null + error: true + errorText: All item Nos. are specified incorrectly, or the specified prices and discounts are already set + SortError: + description: You should choose sorting by price or by discount, not both values + value: + data: null + error: true + errorText: You can't sort items by price and discount at the same time + CheckTheWBClubDiscount: + description: WB Club discounts can only take specified values + value: + data: null + error: true + errorText: 'Check the field values in the WB Club Discount column. Field format: a whole number between {{.WbClubMinDiscount}} and {{.WbClubMaxDiscount}}, without dots or commas' + DiscountsAreTheSameAsThoseAlreadySet: + description: Some of the discounts in the request are already set + value: + data: null + error: true + errorText: Discounts in the file are the same as those already set. To change discounts, edit the file and upload it again + AllItemNosAreSpecifiedIncorrectlyOrDiscounts: + description: No products (for example, they were deleted), or no discount changes + value: + data: null + error: true + errorText: All item Nos. are specified incorrectly, or the specified discounts are already set + UnexpectedResult: + description: Unexpected result, create a dialogue in Seller Support, API category + value: + data: null + error: true + errorText: Unexpected result + LowExpirationDate: + description: The specified expiration date is less than the allowable limit + value: + code: LowExpirationDate + message: Не удалось обновить срок годности. Указан срок меньше допустимого + FailedToUpdateMeta: + value: + message: Failed to update the metadata of the order. Please ensure that the order meets all the necessary requirements (the order exists, is in the "In assembly" status, metadata is available to the order, see the method description to Get the metadata of the order). + SupplyHasOrders: + value: + message: Cannot delete the supply. The supply contains orders. + SupplyHasZeroOrders: + value: + message: Cannot move the supply to the delivery. The supply does not satisfy the delivery conditions. + UinIsNotFilled: + value: + message: Transition to the "in Delivery" status is not possible. Enter UINs for all orders where necessary. + SupplyNotClosed: + value: + message: The supply is not moved to the delivery. + FailedToAddSupplyOrder: + value: + message: Cannot add the order to the supply. The order does not satisfy the conditions of assignment to the delivery. + StatusMismatch: + value: + message: Status change is not allowed for the order. + StatusChangeNotAllowed: + value: + message: Status change to 'completed' or 'canceled by client' is not allowed for the order in 'Delivery By Supplier'. + CampaignIsNotUnique: + description: Duplicate campaign ID.
The position of the campaign in the bids array of the request is indicated in `.bids[n]` + value: + errors: + - detail: advert 1234567 is not unique + field: .bids[2] + request_id: 2c991dcab0fe971e8c0321c340a8c7fd + status: 400 + title: invalid payload + type: Bad Request + CanNotDeserializeResponseBody: + description: Invalid request content + value: + detail: can not deserialize response body + origin: camp-api-public-cache + request_id: 49d317c56e62373b52710251280cea76 + status: 400 + title: invalid payload + CampaignNotFoundBids: + description: Campaign not found.
The position of the campaign in the bids array of the request is indicated in `.bids[n]` + value: + errors: + - detail: advert 22568519 not found + field: .bids[0] + request_id: 202707ea56b2e3ca7705ef00b1db4563 + status: 400 + title: invalid payload + type: Bad Request + WrongCampaignID: + description: Incorrect campaign ID.
The position of the campaign in the bids array of the request is indicated in `.bids[n]` + value: + errors: + - detail: "Key: 'V0PatchAdvertsBidsJSONBody.Bids[0].AdvertId' Error:Field validation for 'AdvertId' failed on the 'gt' tag" + field: AdvertId + request_id: af8a2f59dd49a037c2ed1f6dcb7abb99 + status: 400 + title: validation request params error + type: bad request + WrongCampaignStatus: + description: Incorrect campaign status.
The position of the campaign in the bids array of the request is indicated in `.bids[n]` + value: + errors: + - detail: 'wrong advert status: 7' + field: .bids[0] + request_id: 1dffc16267c1f9266a4d74e999f823b4 + status: 400 + title: invalid payload + type: Bad Request + WrongBidValue: + description: Incorrect bid size.
The position of the campaign in the bids array of the request is indicated in `.bids[n]`, the position of the article with the incorrect bid is indicated in `.nm_bids[n]`.
The minimum and maximum bid values are specified in min and max, respectively. + value: + errors: + - detail: 'wrong bid value: 100; min: 125 max:100000' + field: .bids[0].nm_bids[0].bid + - detail: 'wrong bid value: 100; min: 150 max:100000' + field: .bids[1].nm_bids[0].bid + request_id: dcf254d3eae270675cbaa1e2ff1cce60 + status: 400 + title: invalid payload + type: Bad Request + NmNotFound: + description: Article not found.
The position of the campaign in the bids array of the request is indicated in `.bids[n]`, the position of the unfound article in this campaign is indicated in `.nm_bids[n]`. + value: + errors: + - detail: nm 2406138149 not found or inactive + field: .bids[0].nm_bids[0] + request_id: 2ebb8590d15c6c70e74e9cc3a9dc260b + status: 400 + title: invalid payload + type: Bad Request + ResponseWithReturn: + description: Response when return is true + value: + total: 500 + SettingMinusPhrase: + description: Setting minus phrases + value: + excluded: + - первая фраза + - вторая фраза + RemovingMinusPhrase: + description: Removing minus phrases + value: + excluded: [] + ResponseInvalidCampaignID: + description: Invalid campaign identifier + value: + error: Invalid campaign identifier + StatusNoChangeAdv: + value: Campaign status not changed + IncorrectSupplierIdAdv: + value: Incorrect seller identifier + InvalidRcIdAdv: + value: Incorrect campaign identifier (RC ID) + IncorrectParamAdv: + value: Incorrect value for parameter `param` + IncorrectTypeAdv: + value: Incorrect value for parameter `type` + IncorrectUsingMethods: + description: Incorrect use of the method + value: To obtain information, provide either a list of campaigns or a set of filters + IncorrectName: + value: Incorrect name + IncorrectCpmAdv: + value: Incorrect value for parameter `cpm` + AmountNotChanged: + value: Bid size not changed + CompanyNameChangeErr: + value: Error changing the campaign name + ErrorProcessRequestParam: + value: Error processing request parameters + RequestBodyProcessErrorAdv: + value: Error processing request body + CampaignNotBelongSeller: + value: Campaign does not belong to the seller + CampaignNotFoundAdv: + value: + error: Not found + ResponseInfoAdvert: + value: + - endTime: '2100-01-01 00:00:00+03:00' + createTime: '2023-05-31 16:57:42.654141+03:00' + changeTime: '2023-06-21 22:10:43.074183+03:00' + startTime: '2023-07-21 21:17:42.872376+03:00' + name: Носки_Шерстяные + params: + - intervals: + - begin: 3 + end: 5 + price: 400 + subjectId: 201 + subjectName: Носки + nms: + - nm: 11111111 + active: true + active: false + dailyBudget: 0 + advertId: 12345 + status: 9 + type: 6 + paymentType: cpm + searchPluseState: false + ResponseInfoAdvertType8: + value: + - endTime: '2023-10-05T21:37:37.226021+03:00' + createTime: '2023-08-21T13:45:31.121172+03:00' + changeTime: '2023-08-21T14:59:33.622594+03:00' + startTime: '2023-08-21T13:45:31.147601+03:00' + autoParams: + subject: + name: Обложки + id: 342 + sets: + - name: для женщин + id: 623 + nms: + - 1234567 + active: + carousel: true + recom: true + booster: true + nmCPM: + - nm: 1234567 + cpm: 150 + name: Кампания1 + dailyBudget: 0 + advertId: 11111111 + status: 7 + type: 8 + paymentType: cpm + ResponseInfoAdvertType9: + value: + - endTime: '2100-01-01T00:00:00+03:00' + createTime: '2023-07-09T10:56:02.150362+03:00' + changeTime: '2023-07-11T02:48:44.767712+03:00' + startTime: '2023-07-10T08:02:31.949155+03:00' + searchPluseState: false + name: Противовирусные препараты + unitedParams: + - subject: + id: 3038 + name: Противовирусные препараты + menus: + - id: -1 + name: '' + nms: + - 38995344 + searchCPM: 123 + catalogCPM: 321 + dailyBudget: 0 + advertId: 1234567 + status: 11 + type: 9 + paymentType: cpm + auction_multibids: + - nm: 38995344 + bid: 154 + ResponseInfoAdvertsAll: + value: + - endTime: '2100-01-01 00:00:00+03:00' + createTime: '2023-05-31 16:57:42.654141+03:00' + changeTime: '2023-06-21 22:10:43.074183+03:00' + startTime: '2023-07-21 21:17:42.872376+03:00' + name: Носки_Шерстяные + params: + - intervals: + - begin: 3 + end: 5 + price: 400 + subjectId: 201 + subjectName: Носки + nms: + - nm: 11111111 + active: true + active: false + dailyBudget: 0 + advertId: 12345 + status: 9 + type: 6 + paymentType: cpm + searchPluseState: false + - endTime: '2023-10-05T21:37:37.226021+03:00' + createTime: '2023-08-21T13:45:31.121172+03:00' + changeTime: '2023-08-21T14:59:33.622594+03:00' + startTime: '2023-08-21T13:45:31.147601+03:00' + autoParams: + subject: + name: Обложки + id: 342 + sets: + - name: для женщин + id: 623 + nms: + - 1234567 + active: + carousel: true + recom: true + booster: true + nmCPM: + - nm: 1234567 + cpm: 150 + name: Кампания1 + dailyBudget: 0 + advertId: 11111111 + status: 7 + type: 8 + paymentType: cpm + - endTime: '2100-01-01T00:00:00+03:00' + createTime: '2023-07-09T10:56:02.150362+03:00' + changeTime: '2023-07-11T02:48:44.767712+03:00' + startTime: '2023-07-10T08:02:31.949155+03:00' + searchPluseState: false + name: Противовирусные препараты + unitedParams: + - subject: + id: 3038 + name: Противовирусные препараты + menus: + - id: -1 + name: '' + nms: + - 38995344 + searchCPM: 123 + catalogCPM: 321 + dailyBudget: 0 + advertId: 1234567 + status: 11 + type: 9 + paymentType: cpm + Response200: + description: Success + value: data: - type: object - nullable: true + templates: + - id: id + name: name + text: text + error: false + errorText: '' + additionalErrors: null + IncorrectTemplateType: + description: Invalid template type + value: + data: null error: true - errorText: Access denied - Responses500: - description: Внутренняя ошибка сервиса - ExceededLimitRequests429: - description: Слишком много запросов - Responses208: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TaskAlreadyExistsError' - examples: - TaskAlreadyExists: - description: | - Такая загрузка уже есть - value: + errorText: Неизвестный тип шаблона + additionalErrors: null + TemplateLimitExceeded: + description: Template limit exceeded + value: + data: null + error: true + errorText: Превышен лимит шаблонов + additionalErrors: null + InvalidTemplateNameLen: + description: Invalid template name length + value: + data: null + error: true + errorText: Допустимая длина названия шаблона от 1 до 100 символов + additionalErrors: null + InvalidCommentLenTemplate: + description: Invalid comment length in the template + value: + data: null + error: true + errorText: Допустимая длина комментария в шаблоне от 2 до 1000 символов + additionalErrors: null + InvalidRequest: + description: Bad request + value: + data: null + error: true + errorText: Неверный запрос + additionalErrors: null + EditTemplateError: + description: Couldn't edit template + value: + data: null + error: true + errorText: Не удалось отредактировать шаблон + additionalErrors: null + PostTemplateOK: + description: Success + value: data: - id: 1111111 - alreadyExists: true + id: '1234' error: false - errorText: Task already exists - ErrorResponse: - description: Другие ошибки - content: - application/json: - schema: - type: object - properties: - data: - type: object - nullable: true - error: - type: boolean - errorText: - type: string - example: Unknown error - ErrorInternalResponse: - description: Прочие ошибки - content: - application/json: - schema: - type: object - properties: - data: - type: object - nullable: true - error: - type: boolean - errorText: - type: string - example: Internal server error - text/plain: - schema: - type: string - example: Internal server error - ErrorUnknownUser: - description: Ошибка авторизации - content: - application/json: - schema: - type: object - properties: - data: - type: object - nullable: true - error: - type: boolean - example: true - errorText: - type: string - example: Unknown user - code: - type: integer - description: Код ошибки - example: 401 - message: - description: Описание ошибки - type: string - example: Текст ошибки - ErrorWrongParameters: - description: Неправильный запрос - content: - application/json: - schema: - type: object - properties: - data: - type: object - nullable: true - error: - type: boolean - example: true - errorText: - type: string - example: Invalid query params - NotFound: - description: Запрашиваемый ресурс не найден - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - code: NotFound - message: Не найдено - Unauthorized: - description: Пользователь не авторизован - content: - application/json: - schema: - type: string - examples: - TokenMissing: - $ref: '#/components/examples/TokenMissing' - TokenInvalid: - $ref: '#/components/examples/TokenInvalid' - TokenNotFound: - $ref: '#/components/examples/TokenNotFound' - ExceededLimitRequests: - description: Превышен лимит по запросам - AccessDenied: - description: Доступ запрещён - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - code: AccessDenied - message: Доступ запрещён - InternalServerError: - description: Внутренняя ошибка сервиса - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - code: InternalServerError - message: Внутренняя ошибка сервиса - Response400: - description: Неправильный запрос - content: - application/json: - schema: - type: string - example: Bad 'dateFrom' param - SuccessReceivingResponse: - description: Отчёт - content: - application/json: - schema: - type: object - properties: - report: - type: array - items: - type: object - properties: - count: - type: integer - description: Количество товаров, шт. - example: 40 - giCreateDate: - type: string - format: date - description: Дата создания поставки - example: {} - incomeId: - type: integer - description: Номер поставки - example: 11834106 - nmID: - type: integer - description: Артикул Wildberries - example: 123456789 - shkСreateDate: - type: string - format: date - description: Дата приёмки - example: {} - subjectName: - type: string - description: Предмет (подкатегория) - example: Добавки пищевые - sum: - deprecated: true - type: integer - description: Суммарная стоимость приёмки, ₽ - example: 200 - total: - type: number - description: Суммарная стоимость приёмки, ₽ с копейками - example: 200.5 - SuccessIncorrectProductsResponse: - description: Удержания за подмены - content: - application/json: - schema: - type: object - properties: - report: - type: array - items: - type: object - properties: - amount: - type: number - description: Цена, ₽ - example: 24514.5 - date: - type: string - description: Дата - example: {} - lostReason: - type: string - description: Причина удержания - example: Подмена. Вместо большой железной дороги поступила маленькая коробка. - nmID: - type: integer - description: Артикул Wildberries - example: 123456789 - photoUrl: - type: string - description: Фото - example: https://mstatic.wbstatic.net/writeoff_to_the_seller/12345678911-2023-06-21T12:13:37.768Z-1.png - shkID: - type: integer - description: Штрихкод - example: 14555724540 - SuccessCoefficientResponse: - description: Коэффициент логистики и хранения - content: - application/json: - schema: - type: object - properties: - report: - type: array - items: - type: object - properties: - actualHeight: - type: number - description: Фактическая высота, см - example: 6 - actualLength: - type: number - description: Фактическая длина, см - example: 39 - actualVolume: - type: number - description: Фактический объём, л - example: 7.02 - actualWidth: - type: number - description: Фактическая ширина, см - example: 30 - date: - type: string - description: Дата измерения в формате RFC 3339. Для расчёта используются измерения за 30 дней, до начала отчётной недели - example: {} - dimensionDifference: - type: number - description: Разница в габаритах, % - example: 101.74 - height: - type: number - description: Высота из карточки, см - example: 10 - length: - type: number - description: Длина из карточки, см - example: 30 - logWarehouseCoef: - type: number - description: Коэффициент логистики и хранения для товара - example: 1 - nmID: - type: integer - description: Артикул Wildberries - example: 123456789 - photoUrls: - type: string - description: Фото измерений - example: - - https://photos.wbstatic.net/handheld-goods-measurements-photo/123456789_73984211-e6c3-44e2-66af-0d44d2620308.jpg - - https://photos.wbstatic.net/handheld-goods-measurements-photo/123456789_8ee5ff5e-c6bb-426c-7d12-c2dd228c0f62.jpg - title: - type: string - description: Наименование товара - example: Сухой корм для крупных собак ассорти мясное, 10 кг - volume: - type: number - description: Объём из карточки, л - example: 6.9 - width: - type: number - description: Ширина из карточки, см - example: 23 - SuccessGoodsLabelingResponse: - description: Успешно - content: - application/json: - schema: - type: object - properties: - report: - type: array - items: - type: object - properties: - amount: - description: Сумма штрафа, руб - type: number - date: - description: Дата - type: string - format: date-time - incomeId: - description: Номер поставки - type: integer - nmID: - description: Артикул WB - type: integer - photoUrls: - description: URL фото товара - type: array - items: - type: string - shkID: - description: Штрихкод товара в Wildberries - type: integer - sku: - description: Баркод из карточки товара - type: string - example: - report: - - amount: 1500 - date: '2024-03-26T01:00:00Z' - incomeId: 18484008 - nmID: 49434732 - photoUrls: - - https://static-basket-03.wb.ru/vol54/photo-fixation-violation-shk-excise/12345678900-1811460999-1.jpg - - https://static-basket-03.wb.ru/vol54/photo-fixation-violation-shk-excise/12345678900-1811461000-2.jpg - - https://static-basket-03.wb.ru/vol54/photo-fixation-violation-shk-excise/12345678900-1811461001-3.jpg - shkID: 17346434621 - sku: '4630153500834' - SuccessCharacteristicsTaskResponse: - description: Успех - content: - application/json: - schema: - type: object - properties: - report: - type: array - items: - type: object - properties: - amount: - type: integer - description: Сумма штрафа в копейках - date: - type: string - format: date - description: Дата изменения характеристик товара на складе - newBarcode: - type: string - description: Новый баркод в карточке товара - newColor: - type: string - description: Новый цвет - newSa: - type: string - description: Новый артикул продавца - newShkID: - type: integer - description: Новый штрихкод товара в Wildberries - newSize: - type: string - description: Новый размер - nmID: - type: integer - description: Артикул WB - oldBarcode: - type: string - description: Старый баркод из карточки товара - oldColor: - type: string - description: Старый цвет - oldSa: - type: string - description: Старый артикул продавца - oldShkID: - type: integer - description: Старый штрихкод товара в Wildberries - oldSize: - type: string - description: Старый размер - example: - report: - - amount: 135890 - date: '2024-03-01T01:00:00Z' - newBarcode: '22222222222222' - newColor: темно-синий,голубой - newSa: hjt13/темно-синий,голубой - newShkID: 44444444444 - newSize: '80' - nmID: 123654789 - oldBarcode: '111111111111111' - oldColor: темно-синий,голубой - oldSa: hjt13/темно-синий,голубой - oldShkID: 333333333 - oldSize: '43' - 400BadRequestResponse: - description: Некорректный запрос - content: - application/problem+json: - schema: - type: object - properties: - title: - type: string - description: ID ошибки - detail: - type: string - description: Описание ошибки - requestId: - type: string - description: ID запроса - origin: - type: string - description: Сервис, вернувший ошибку - examples: - IncorrectDateTimeFrom: - $ref: '#/components/examples/IncorrectDateTimeFrom' - IncorrectDateTimeTo: - $ref: '#/components/examples/IncorrectDateTimeTo' - MissingDateTimeFrom: - $ref: '#/components/examples/MissingDateTimeFrom' - MissingDateTimeTo: - $ref: '#/components/examples/MissingDateTimeTo' - DateRangeExceeded: - $ref: '#/components/examples/DateRangeExceeded' - DateRanges: - $ref: '#/components/examples/DateRanges' - BadRequest: - description: Некорректный запрос - RateLimit: - description: Слишком много запросов - PatchClaimSuccessResponse: - description: Успешно - GetClaimsSuccessResponse: - description: Успешно - content: - application/json: - schema: - type: object - example: - claims: - - id: fe3e9337-e9f9-423c-8930-946a8ebef80 - claim_type: 1 - status: 2 - status_ex: 8 - nm_id: 196320101 - user_comment: Длина провода не соответствует описанию - wb_comment: "Продавец одобрил вашу заявку на возврат. В течение 14 дней принесите товар в определённый пункт выдачи — всё зависит от того, как вы получали заказ:\r\n\r\n∙ В пункте выдачи. Тогда нужно будет вернуть в тот же пункт по тому же адресу. \r\n∙ Курьером. Зайдите в раздел «Покупки» на сайте — там будет адрес пункта, в который нужно принести товар.\r\n\r\nВозьмите с собой пакет со штрих-кодом, в котором был товар. Если вы его потеряли или выбросили — ничего страшного, мы всё равно сможем провести возврат. Но в будущем, пожалуйста, сохраняйте этот пакет. \r\n\r\nДеньги придут на вашу карту или счёт в течение 10 дней после возврата товара на склад.\r\n\r\nЕсли у вас крупногабаритный товар, то для его возврата вызовите курьера через раздел «Доставки»." - dt: '2024-03-26T17:06:12.245611' - imt_name: Кабель 0.5 м, 3797 - order_dt: '2020-10-27T05:18:56' - dt_update: '2024-05-10T18:01:06.999613' - photos: - - //photos.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/1.jpeg - - //photos.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/2.jpeg - video_paths: - - //video.wbstatic.net/claim/fe3e9337-e9f9-423c-8930-946a8ebef80/1.mp4 - actions: - - autorefund1 - - approve1 - price: 157 - currency_code: '643' - total: 31 - properties: - claims: - type: array - description: Заявки - items: - type: object - properties: - id: - type: string - description: ID заявки - format: UUID - claim_type: - type: integer - description: | - Источник заявки: - * `1` — портал покупателей - * `3` — чат - status: - type: integer - description: | - Решение по возврату покупателю: - * `0` — на рассмотрении - * `1` — отказ - * `2` — одобрено - status_ex: - type: integer - description: | - Статус товара: - * `0` — на рассмотрении - * `1` — остаётся у покупателя - * `2` — без возврата - * `5` — без возврата - * `8` — товар будет возвращён в реализацию или оформлен на возврат после проверки WB - * `10` — возврат продавцу - nm_id: - type: integer - description: Артикул WB - user_comment: - type: string - maxLength: 1000 - description: Комментарий покупателя - wb_comment: - type: string - maxLength: 10000 - description: Ответ покупателю - dt: - type: string - format: date-time - description: Дата и время оформления заявки покупателем - imt_name: - type: string - description: Название товара - order_dt: - type: string - format: date-time - description: Дата и время заказа - dt_update: - type: string - format: date-time - description: Дата и время рассмотрения заявки. Для нерассмотренной заявки — дата и время оформления - photos: - type: array - description: Фотографии из заявки покупателя - minItems: 0 - maxItems: 10 - items: - type: string - format: JPEG - video_paths: - type: array - description: Видео из заявки покупателя - minItems: 0 - maxItems: 1 - items: - type: string - format: MP4 - actions: - type: array - description: | - Варианты ответа продавца.
Отклонённые заявки можно пересмотреть. Если массив пуст, с заявкой работать нельзя. - * `approve1` — одобрить с проверкой брака.
Деньги вернутся покупателю после возврата товара. Товар будет проверен на складе. При подтверждении брака/ошибки вложения товар будет отправлен продавцу. Если брак/ошибка вложения не подтвердятся, товар будет возвращён в продажу. - * `approve2` — одобрить и забрать товар.
Деньги вернутся покупателю после возврата товара. Товар будет отправлен продавцу. - * `autorefund1` — одобрить без возврата товара.
Товар останется у покупателя. Деньги за него будут возвращены покупателю без возврата товара. - * `reject1` — отклонить с шаблоном ответа:
Брак не обнаруженЗдравствуйте! Заявка онлайн на проверку качества товара рассмотрена.
По предоставленной информации (фото, видео, комментарий) брак не подтвержден.
- * `reject2` — отклонить с шаблоном ответа:
Добавить фото/видеоДобрый день! Заявка онлайн на проверку качества товара рассмотрена и отклонена по причине некорректного оформления. Обращаем Ваше внимание, что в комментариях должна быть представлена информация (описание) о наличии предполагаемого производственного брака, а фотографии (не менее двух) и (или) видео - отображать следующую информацию:
1. Обзорное изображение товара целиком
2. Крупный план вшивной бирки (или другая маркировка товара)
3. При наличии упаковки со штрих-кодом - фото ШК.
4. Предполагаемый дефект товара.
Просим Вас переоформить заявку с соблюдением необходимых условий.
- * `reject3` — отклонить с шаблоном ответа:
Направить в сервисный центрЗдравствуйте! Мы внимательно прочитали заявку, проверили фото и видео. К сожалению, мы не нашли брак, повреждение или несоответствие описанию в вашем товаре. Обратитесь напрямую в сервисный центр — его адрес и контакты есть на сайте производителя или на гарантийном талоне. Там проведут окончательную проверку товара и выдадут вам акт. Если центр нашёл брак, то отправьте этот акт в чат на нашем сайте.
- items: - type: string - price: - type: number - description: Фактическая цена с учетом всех скидок. Взимается с покупателя - currency_code: - type: string - description: Код валюты цены - total: - type: integer - description: Количество заявок, соответствующих параметрам запроса. Без учёта `limit` и `offset` - ErrorRateLimit: - description: Слишком много запросов - content: - application/json: - schema: - type: object - properties: - code: - type: integer - description: Код ошибки - example: 429 - message: - description: Описание ошибки - type: string - example: Текст ошибки - Error400GetClaims: - description: Некорректный запрос - content: - application/json: - schema: - type: object - properties: - title: - type: string - description: ID ошибки - example: Invalid query params - detail: - description: Описание ошибки - type: string - example: 'Failed to deserialize query string: missing field `is_archive`' - requestId: - description: ID запроса - type: string - example: e0aedc10-9789-49c1-9a83-d8422b4703dc - Error400PatchClaim: - description: Некорректный запрос - content: - application/json: - schema: - type: object - properties: - title: - type: string - description: ID ошибки - example: Validation error - detail: - description: Описание ошибки - type: string - example: 'Input model is not valid; Details: The Action field is required.' - requestId: - description: ID запроса - type: string - example: 0HN3PI6JUGFSL:00000004 + errorText: '' + additionalErrors: null + PatchDelRespOK: + description: Success + value: + data: true + error: false + errorText: '' + additionalErrors: null + ErrorDeleteBD: + description: Error deleting template from database + value: + data: null + error: true + errorText: Ошибка удаления шаблона из базы данных + additionalErrors: null + FeedbackErr400: + description: Bad request + value: + data: null + error: true + errorText: Something went wrong + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + IsAnsweredErr400: + description: Bad request + value: + data: null + error: true + errorText: Плохой формат isAnswered + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + DateFromErr400: + description: Bad request + value: + data: null + error: true + errorText: Плохой формат dateFrom + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + DateToErr400: + description: Bad request + value: + data: null + error: true + errorText: Плохой формат dateTo + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + FeedbackErr403: + description: Access denied + value: + data: null + error: true + errorText: Ошибка авторизации + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + FeedbackErr404: + description: Not found + value: + data: null + error: true + errorText: Не найден отзыв + additionalErrors: null + requestId: 734c9ea8-39e5-45c9-8cad-f03c13f733e9 + responseInaccessibleBackGoodError422: + description: Request for product return is unavailable + value: + errorText: Request for product return is unavailable + responseUnsuccessfullyBackGoodError422: + description: Failed to process the return request for purchases + value: + data: null + error: true + errorText: Не удалось выполнить запрос на возврат покупок + additionalErrors: null + requestId: 93ea349d-d0ec-41b0-aaac-a8f5f137a109 + ResponseGetQestionByIdErrEx: + description: Failed to get a question by ID + value: + data: null + error: true + errorText: Невозможно получить вопрос по id + additionalErrors: null + requestId: 87a2fe4d-d28b-4bae-b824-c0f498c72702 + ResponseGetFeedbackByIdErrEx: + description: Failed to get a review by ID + value: + data: null + error: true + errorText: Невозможно получить отзыв по id + additionalErrors: null + requestId: 87a2fe4d-d28b-4bae-b824-c0f498c72702 + ResponseDoNotGetFeedback400: + description: Bad request + value: + errorText: Failed to receive the feedback + RequestBodyErr400: + description: Bad request + value: + data: null + error: true + errorText: failed to decode JSON request. + additionalErrors: null + requestId: 958d9676-b50c-41d6-b7ce-3c9f0bc3b822 + RequestIDErr400: + description: Bad request + value: + data: null + error: true + errorText: Неправильный id в запросе + additionalErrors: null + requestId: 958d9676-b50c-41d6-b7ce-3c9f0bc3b822 + securitySchemes: + HeaderApiKey: + type: apiKey + name: Authorization + in: header From 43316ab5ed3373c816ec3127127af6e438a2093d Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 4 Aug 2025 19:52:28 +0400 Subject: [PATCH 26/28] Implement code changes to enhance functionality and improve performance --- .vscode/launch.json | 28 +- src/openapi_python_generator/generate_data.py | 58 +- .../python/service_generator.py | 3 +- .../python/templates/models.jinja2 | 2 +- tests/test_data/swagger.json | 44955 ++++++++++++++++ 5 files changed, 45029 insertions(+), 17 deletions(-) create mode 100644 tests/test_data/swagger.json diff --git a/.vscode/launch.json b/.vscode/launch.json index e41fb92..8f8e6e9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,16 +1,16 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Test", - "type": "debugpy", - "request": "launch", - "program": "${workspaceFolder}/src/openapi_python_generator", - "args": ["--library", "aiohttp", "./openapi.yaml", "test_api"], - "cwd": "${workspaceFolder}/tests/test_data" - } - ] + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Test", + "type": "debugpy", + "request": "launch", + "program": "${workspaceFolder}/src/openapi_python_generator", + "args": ["--library", "aiohttp", "./swagger.json", "test_api"], + "cwd": "${workspaceFolder}/tests/test_data" + } + ] } diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index dfe366a..31dee09 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -47,6 +47,59 @@ def write_code(path: Path, content) -> None: raise e +def _fix_openapi_data(data: dict) -> dict: + """ + Fix common OpenAPI validation issues in the data. + + :param data: The raw OpenAPI data dictionary + :return: Fixed OpenAPI data dictionary + """ + import copy + + data = copy.deepcopy(data) + + def fix_schema_recursively(obj): + if isinstance(obj, dict): + # Fix invalid type values + if "type" in obj and isinstance(obj["type"], str): + type_mappings = { + "file": "string", + "array of strings": "array", + "int": "integer", + "int64": "integer", + "timestamp": "string", + "enum": "string", + } + if obj["type"] in type_mappings: + original_type = obj["type"] + obj["type"] = type_mappings[original_type] + # Add format for specific types + if original_type == "timestamp": + obj["format"] = "date-time" + elif original_type == "int64": + obj["format"] = "int64" + + # Fix array of strings type + if obj["type"] == "array" and "items" not in obj: + obj["items"] = {"type": "string"} + + # Fix incorrect required field format + if "required" in obj and isinstance(obj["required"], bool): + # This should be handled at the parent level, remove it here + del obj["required"] + + # Recursively process all values + for key, value in obj.items(): + obj[key] = fix_schema_recursively(value) + + elif isinstance(obj, list): + return [fix_schema_recursively(item) for item in obj] + + return obj + + return fix_schema_recursively(data) + + def get_open_api(source: Union[str, Path]) -> Any: """ Tries to fetch the openapi.json file from the web or load from a local file. Returns the according OpenAPI object. @@ -79,7 +132,7 @@ def get_open_api(source: Union[str, Path]) -> Any: try: data = orjson.loads(text) - except: + except Exception: data = yaml.safe_load(text) if data["openapi"].startswith("3.0"): @@ -89,6 +142,9 @@ def get_open_api(source: Union[str, Path]) -> Any: openapi_python_generator.OPENAPI_VERSION = "3.1" from openapi_pydantic.v3.v3_1 import OpenAPI + # Preprocess data to fix common OpenAPI validation issues + data = _fix_openapi_data(data) + return OpenAPI(**data) diff --git a/src/openapi_python_generator/language_converters/python/service_generator.py b/src/openapi_python_generator/language_converters/python/service_generator.py index d115fa1..82ff7bf 100644 --- a/src/openapi_python_generator/language_converters/python/service_generator.py +++ b/src/openapi_python_generator/language_converters/python/service_generator.py @@ -183,7 +183,8 @@ def _generate_params_from_content(content: Union[Reference, Schema]): f"Unsupported media type schema for {str(operation)}" ) # pragma: no cover elif isinstance(operation.requestBody, Reference): - params += f"data : {operation.requestBody.ref.split('/')[-1]}, " + ref_name = operation.requestBody.ref.split("/")[-1] + params += f"data : {pascalcase(ref_name)}, " else: raise Exception( f"Unsupported request body type: {type(operation.requestBody)}" diff --git a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 index d19b29d..73be989 100644 --- a/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +++ b/src/openapi_python_generator/language_converters/python/templates/models.jinja2 @@ -30,7 +30,7 @@ class {{ schema_name }}(BaseModel): {% for property in properties %} - {{ property.name | replace("@","") | replace("-","_") }} : {{ property.type.converted_type | safe }} = Field(alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %}) + {{ (property.name | replace("@","") | replace("-","_") + "_" if property.name | replace("@","") | replace("-","_") in ["with", "from", "return", "class", "def", "if", "else", "elif", "for", "while", "try", "except", "finally", "import", "as", "global", "nonlocal", "lambda", "and", "or", "not", "in", "is", "True", "False", "None", "pass", "break", "continue", "yield", "async", "await"] else property.name | replace("@","") | replace("-","_")) }} : {{ property.type.converted_type | safe }} = Field(alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %}) {% endfor %} {% endif %} diff --git a/tests/test_data/swagger.json b/tests/test_data/swagger.json new file mode 100644 index 0000000..c105553 --- /dev/null +++ b/tests/test_data/swagger.json @@ -0,0 +1,44955 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Документация Ozon Seller API", + "version": "2.1", + "x-logo": { + "url": "https://cdn2.ozone.ru/s3/redoc/ozon-seller-logo.svg", + "backgroundColor": null, + "altText": "Ozon logo" + }, + "description": "По вопросам работы с Seller API обращайтесь в поддержку через личный кабинет.\n\n> [Инструкции по работе с маркетплейсом](https://seller-edu.ozon.ru)\n\n> [Информационная платформа и сообщество разработчиков Ozon for dev](https://dev.ozon.ru/)\n" + }, + "servers": [ + { + "url": "//api-seller.ozon.ru" + } + ], + "x-tagGroups": [ + { + "name": "Общее описание", + "tags": [ + "Introduction", + "Getting started", + "Auth", + "Environment", + "Process" + ] + }, + { + "name": "Методы Seller API", + "tags": [ + "CategoryAPI", + "ProductAPI", + "BarcodeAPI", + "Prices&StocksAPI", + "Promos", + "PricingStrategyAPI", + "BrandAPI", + "CertificationAPI", + "WarehouseAPI", + "FBS", + "PolygonAPI", + "FBO", + "FboSupplyRequest", + "FBS&rFBSMarks", + "DeliveryFBS", + "DeliveryrFBS", + "Pass", + "ReturnsAPI", + "RFBSReturnsAPI", + "ReturnAPI", + "CancellationAPI", + "ChatAPI", + "SupplierAPI", + "ReportAPI", + "AnalyticsAPI", + "FinanceAPI", + "SellerRating", + "InvoiceAPI" + ] + }, + { + "name": "Бета-методы Seller API", + "tags": [ + "BetaIntro", + "BetaMethod", + "Digital", + "Quants", + "ReviewAPI", + "Questions&Answers" + ] + }, + { + "name": "Приложения", + "tags": [ + "Errors" + ] + }, + { + "name": "Пуш-уведомления", + "tags": [ + "push_intro", + "push_start", + "push_resending", + "push_types", + "service_response" + ] + }, + { + "name": "Обновления", + "dataSelector": "tab-news", + "tags": [ + "News" + ] + } + ], + "tags": [ + { + "name": "Introduction", + "x-displayName": "Введение", + "description": "## Что такое Ozon Seller API\r\n\r\nOzon Seller API — программный интерфейс для работы с маркетплейсом Ozon. Он даёт возможность обмениваться информацией между системой продавца и Ozon.\r\n\r\nМетоды Seller API позволяют изменять данные магазина, например, остатки товаров или их стоимость, и получать данные, \r\nтакие как информация о возвратах или список складов.\r\n\r\nРабота с API состоит из отправки запроса и получения ответа. Для этого можно использовать вкладку **Консоль**, которая находится сверху описания методов, [Postman](https://www.postman.com) или настроить интеграцию с системами учёта, например, 1С, ERP или МойСклад.\r\n\r\n## Когда пригодится Seller API\r\n\r\nПри интеграции системы учёта продавца с Seller API обновлять и получать данные можно в автоматическом режиме. Это \r\nпоможет поддерживать актуальной информацию о ценах и остатках товаров, обрабатывать больше заказов за меньшее время \r\nи исключить ошибки из-за обновления данных вручную.\r\n\r\nНапример, вам нужно обновить информацию об остатках или ценах 100 товаров. Чтобы сделать это через личный кабинет, \r\nнеобходимо вручную изменить данные на карточке каждого товара.\r\n\r\nМетод [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) позволяет одним запросом обновить информацию об \r\nостатках сразу 100 товаров, а метод [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) — их стоимость.\r\n\r\n## Возможности Seller API\r\n\r\n- Загружать и обновлять товары.\r\n- Управлять ценами и остатками по товарам.\r\n- Получать информацию о возвратах товаров.\r\n- Управлять заказами FBO, FBS и rFBS.\r\n- Управлять чатами.\r\n- Работать с накладными.\r\n- Получать финансовую и аналитическую информацию.\r\n- Получать выгрузку атрибутов и характеристик Ozon.\r\n\r\n\r\n" + }, + { + "name": "Getting started", + "x-displayName": "Начало работы", + "description": "\r\n\r\n
\r\n\r\n\r\n\r\nПеред началом работы с Ozon Seller API:\r\n\r\n1. Изучите процессы работы с Ozon в [Базе знаний продавца](https://seller-edu.ozon.ru) и [личном кабинете продавца](https://seller.ozon.ru/app/signin).\r\n2. Определите процессы, которые планируете автоматизировать, и сравните их с процессами вашей компании.\r\n3. Изучите документацию Seller API и разработайте схему интеграции.\r\n\r\nДля работы с Seller API необходим API-ключ. Подробнее в разделе [Авторизация](#tag/Auth).\r\n\r\nSeller API работает по UTC. Учитывайте это, когда отправляете запросы и получаете ответы с датами и временем.\r\n\r\nПроцесс работы с Seller API можно разделить на блоки:\r\n- работа с атрибутным деревом,\r\n- загрузка и обновление товаров,\r\n- управление ценами,\r\n- управление остатками товара,\r\n- управление заказами FBO,\r\n- управление заказами FBS и rFBS,\r\n- работа с накладными,\r\n- получение финансовой информации,\r\n- получение аналитической информации,\r\n- управление возвратами,\r\n- управление чатами.\r\n" + }, + { + "name": "Auth", + "x-displayName": "Авторизация", + "description": "
\r\n\r\n## Как получить доступ к Seller API\r\n\r\n1. Зарегистрируйтесь в [Ozon Seller](https://seller.ozon.ru/app/signup). Подробнее о регистрации \r\n в [Базе знаний продавца](https://seller-edu.ozon.ru/docs/how-to-start/step-1-register.html).\r\n2. Получите API-ключ.\r\n\r\n## Как получить API-ключ\r\n\r\n\r\n\r\nЧтобы получить API-ключ:\r\n1. В личном кабинете перейдите в [**Настройки → Seller API**](https://seller.ozon.ru/app/settings/api-keys).\r\n2. Нажмите **Сгенерировать ключ**.\r\n3. Придумайте название для ключа и выберите его уровень доступа.\r\n4. Нажмите **Сгенерировать**.\r\n\r\nВы можете создать несколько API-ключей. Например, если у вас несколько пользователей с разными уровнями доступа.\r\n\r\n### Отредактировать ключ\r\n\r\nЕсли вы хотите изменить разрешённые сети для ключа, в [списке API-ключей](https://seller.ozon.ru/app/settings/api-keys) выберите нужный и нажмите .\r\nВнесите изменения и нажмите **Обновить**.\r\n\r\n## API-ключ попал в посторонние руки\r\n\r\n1. В личном кабинете перейдите в [**Настройки → Seller API**](https://seller.ozon.ru/app/settings/api-keys).\r\n2. Удалите текущий API-ключ и создайте новый." + }, + { + "name": "Environment", + "x-displayName": "Рабочая среда", + "description": "## Что такое рабочая среда\r\n\r\nРабочая среда — это ваш магазин. Все отправленные запросы, кроме информационных, могут изменять данные в личном \r\nкабинете и на сайте Ozon.\r\n\r\n**Рабочая среда**: api-seller.ozon.ru\r\n\r\nСозданные товары можно посмотреть по ссылке вида: https://www.ozon.ru/context/detail/id/SKU, где вместо «SKU» нужно \r\nуказать значение для созданного товара.\r\n\r\n## Формат запроса\r\n\r\n```http\r\nGET / HTTP/1.1\r\nHost: api-seller.ozon.ru\r\nClient-Id: \r\nApi-Key: \r\nContent-Type: application/json\r\n```\r\n\r\nДля проверки корректности формата запроса используйте вкладку **Консоль** над описанием метода или \r\n[Postman](https://www.postman.com). " + }, + { + "name": "Process", + "x-displayName": "Порядок работы с методами", + "description": "
\r\n\r\n# Выгрузите атрибуты и характеристики Ozon\r\n\r\n
\r\n\r\n1. [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree) — получите список категорий и типов в виде дерева и используйте\r\n значение последнего уровня выбранной категории.\r\n\r\n2. [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) — получите характеристики для выбранных\r\n категории и типа.\r\n\r\n3. [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues) — получите список значений для выбранной\r\n характеристики.\r\n\r\n# Загрузите и обновите товары\r\n\r\nПосле сравнения своих атрибутов и характеристик с атрибутной моделью Ozon можете приступить к загрузке товаров:\r\n\r\n1. [/v3/product/import](#operation/ProductAPI_ImportProductsV3) — загрузите товары и услуги. Этот метод также позволяет\r\n обновить уже загруженные товары. В запросе устанавливается первичная цена и загружаются изображения товара. \r\n\r\n В одном запросе можно передать до 100 товаров. Изображения загружаются прямой ссылкой на облачное хранилище, где они\r\n хранятся.\r\n\r\n В результате работы метода вы получите `task_id` — номер задания на загрузку товаров.\r\n\r\n2. [/v1/product/import/info](#operation/ProductAPI_GetImportProductsInfo) — проверьте `task_id`, который вы получили при\r\n загрузке товаров. Метод вернёт информацию, успешно ли загрузились товары или при импорте была ошибка.\r\n\r\n Если ответ содержит статус, что товар на модерации, подождите её результатов и проверьте статус товара повторно.\r\n Обычно модерация занимает меньше одного дня.\r\n\r\n3. [/v3/product/list](#operation/ProductAPI_GetProductList) — получите список созданных товаров после загрузки товаров.\r\n\r\n Метод позволяет использовать фильтры, чтобы разбить товары на группы по статусу видимости или отслеживать изменение\r\n их статуса с помощью идентификатора товара.\r\n\r\n Метод возвращает пару значений `offer_id` и `product_id` — они нужны практически во всех запросах для идентификации\r\n товара, с которым будет производиться действие. Если вы загружали товары через шаблон, используйте этот метод для\r\n получения `offer_id` и `product_id`, чтобы в дальнейшем работать по API с товарами.\r\n\r\n## Загрузите и обновите изображения товара\r\n\r\nЧтобы добавить изображения товара или заменить существующие, используйте:\r\n\r\n1. [/v1/product/pictures/import](#operation/ProductAPI_ProductImportPictures) — загрузите или обновите изображения\r\n товара. Передайте прямые ссылки на изображения, загруженные в облачное хранилище.\r\n2. [/v2/product/pictures/info](#operation/ProductAPI_ProductInfoPicturesV2) — проверьте статус загрузки.\r\n\r\n## Обновите товар\r\n\r\nЧтобы обновить информацию о товаре и его характеристики, используйте [/v3/product/import](#operation/ProductAPI_ImportProductsV3).\r\n\r\nЕсли нужно обновить только характеристики товара, используйте [/v1/product/attributes/update](#operation/ProductAPI_ProductUpdateAttributes).\r\n\r\n## Получите информацию о товаре\r\n\r\n- [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList) — получите информацию о товаре, например штрихкод, цену\r\n главного предложения, идентификатор категории, комиссию или ошибки модерации.\r\n С помощью фильтров [/v3/product/list](#operation/ProductAPI_GetProductList) получите список пакетно по всем товарам сразу или по категориям.\r\n\r\n- [/v4/product/info/attributes](#operation/ProductAPI_GetProductAttributesV4) — получите описание характеристик товара.\r\n Метод позволяет добавить дополнительную информацию к товару, чтобы карточка товара была более полной.\r\n\r\n- [/v1/product/info/description](#operation/ProductAPI_GetProductInfoDescription) — получите описание товара, чтобы\r\n использовать его для создания схожего товара.\r\n\r\n- [/v1/product/info/discounted](#operation/ProductAPI_GetProductInfoDiscounted) — получите информацию об уценке и\r\n основном товаре по SKU уценённого товара.\r\n\r\n## Удалите или архивируйте товар\r\n\r\n1. [/v2/products/delete](#operation/ProductAPI_DeleteProducts) — удалите товар, если он загрузился с ошибкой и попал в\r\n архив без SKU. Товары, которые успешно прошли модерацию и получили SKU, удалить из архива нельзя.\r\n\r\n2. [/v1/product/archive](#operation/ProductAPI_ProductArchive) — перенесите товар в архив. Перед архивированием товара\r\n обнулите его остатки.\r\n\r\n3. [/v1/product/unarchive](#operation/ProductAPI_ProductUnarchive) — верните товар из архива.\r\n\r\nТовар попадёт в продажу, только когда вы установите его остаток.\r\n\r\n# Загрузите сертификаты качества\r\n\r\n## Информация о сертификатах\r\n\r\n- Получите список типов сертификатов: [/v1/product/certificate/types](#operation/ProductAPI_ProductCertificateTypes).\r\n- Получите список сертифицируемых категорий: [/v2/product/certification/list](#operation/ProductAPI_ProductCertificationList).\r\n- Получите список статусов сертификата: [/v1/product/certificate/status/list](#operation/CertificateStatusList).\r\n- Получите список типов соответствия требованиям: [/v2/product/certificate/accordance-types/list](#operation/CertificateAccordanceTypes).\r\n- Получите список причин отклонения сертификата: [v1/product/certificate/rejection_reasons/list](#operation/RejectionReasonsList).\r\n- Получите список сертификатов: [v1/product/certificate/list](#operation/CertificateList), используя фильтры:\r\n - тип сертификата `type` — значение `value` из ответа [/v1/product/certificate/types](#operation/ProductAPI_ProductCertificateTypes);\r\n - статус сертификата `status` — значение `code` из ответа [v1/product/certificate/status/list](#operation/CertificateStatusList).\r\n\r\n## Работа с товарами сертификата\r\n\r\nЧтобы привязать сертификат к товару:\r\n1. Получите список брендов, для которых требуется предоставить сертификат: [/v1/brand/company-certification/list](#operation/ProductAPI_ProductCertificateBind).\r\n В ответе вернутся бренды, товары которых есть в вашем личном кабинете.\r\n Список брендов может изменяться, если Ozon получит требование от бренда предоставлять сертификат.\r\n2. Добавьте сертификаты для товаров: [/v1/product/certificate/create](#operation/ProductAPI_ProductCertificateCreate).\r\n3. Привяжите сертификат к товару: [/v1/product/certificate/bind](#operation/ProductAPI_ProductCertificateBind).\r\n\r\nЧтобы посмотреть список товаров, привязанных к сертификату, воспользуйтесь методом [v1/product/certificate/products/list](#operation/CertificateProductsList).\r\nЕсли нужно получить список товаров с определённым статусом, в параметре `status` передайте значение `code` из ответа [v1/product/certificate/product_status/list](#operation/ProductStatusList).\r\n\r\nЧтобы отвязать товар от сертификата, используйте [/v1/product/certificate/products/unbind](#operation/CertificateUnbind).\r\n\r\n## Управление состоянием сертификата\r\n\r\nЧтобы получить атрибуты для управления сертификатом:\r\n1. Получите список типов сертификатов: [/v1/product/certificate/types](#operation/ProductAPI_ProductCertificateTypes).\r\n2. Получите список типов соответствия требованиям: [/v2/product/certificate/accordance-types/list](#operation/CertificateAccordanceTypes).\r\n\r\nДля создания сертификата используйте [/v1/product/certificate/create](#operation/ProductAPI_ProductCertificateCreate), передав в запросе:\r\n- тип сертификата `type_code` — значение `value` из ответа [/v1/product/certificate/types](#operation/ProductAPI_ProductCertificateTypes);\r\n- тип соответствия требованиям `accordance_type_code` — значение `code` из ответа [/v2/product/certificate/accordance-types/list](#operation/CertificateAccordanceTypes).\r\n\r\nЧтобы удалить сертификат, используйте [/v1/product/certificate/delete](#operation/CertificateDelete).\r\n\r\n# Обновите цены и остатки товаров\r\n\r\nПосле загрузки товаров для схем FBS и rFBS можно перейти к обновлению остатков. Для схемы FBO остатки обновляются\r\nавтоматически по факту продажи.\r\n\r\nДля обновления остатков используйте метод [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2). \r\nВ этом методе дополнительно указывается идентификатор склада, на котором необходимо изменить остатки.\r\n\r\nДля получения информации о количестве остатков для FBO\r\nиспользуйте [/v3/product/info/stocks](#operation/ProductAPI_GetProductInfoStocksV3).\r\n\r\nДля получения информации о количестве остатков для FBS и rFBS\r\nиспользуйте [v1/product/info/stocks-by-warehouse/fbs](#operation/ProductAPI_ProductStocksByWarehouseFbs).\r\n\r\nЧтобы обновить цены по товарам и не менять карточку товара,\r\nиспользуйте [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices).\r\n\r\nМетод позволяет обновить цену:\r\n\r\n- до скидок,\r\n- для клиентов с подпиской Ozon Premium,\r\n- на карточке товара с учётом скидок,\r\n- минимальную цену товара после применения акций.\r\n\r\n\r\n\r\nДля получения информации о ценах, комиссиях и скидках на товары\r\nиспользуйте [/v5/product/info/prices](#operation/ProductAPI_GetProductInfoPrices).\r\n\r\n## Резерв товаров\r\n\r\nЕсли товары заказывают юридические лица, оплата может поступать не сразу — система зарезервирует товары.\r\nЧтобы проверить остатки, используйте методы [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3), [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) или [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\nЕсли в ответе `is_legal = true`, значит среди остатков есть зарезервированные товары.\r\nВы можете обновить остатки так, чтобы новое количество товаров было больше свободного остатка и зарезервированного товара в сумме. \r\nСистема спишет старый остаток и рассчитает новый.\r\n\r\nЧтобы проверить резервирование товара, используйте метод [/v3/product/info/stocks](#operation/ProductAPI_GetProductInfoStocksV3).\r\n\r\n[Подробнее об изменении остатков](https://seller-edu.ozon.ru/fbs/logistics-settings/upravlenie-ostatkami/#как-меняются-остатки-в-разных-ситуациях)\r\n\r\n# Участвуйте в акциях\r\n\r\nДля продвижения товаров участвуйте в акциях, которые Ozon проводит для покупателей.\r\n\r\n- Получите список доступных акций: [/v1/actions](#operation/Promos).\r\n\r\n- Получите список товаров, которые могут участвовать в акции: [/v1/actions/candidates](#operation/PromosCandidates).\r\n\r\n- Добавьте товары в акцию: [/v1/actions/products/activate](#operation/PromosProductsActivate).\r\n\r\n- Получите список товаров, которые участвуют в акции: [/v1/actions/products](#operation/PromosProducts).\r\n\r\n- Удалите товары из акции: [/v1/actions/products/deactivate](#operation/PromosProductsDeactivate).\r\n\r\nПокупатели могут попросить у вас скидку на товар.\r\nЧтобы получить список товаров, которые покупатели хотят купить со скидкой, воспользуйтесь методом\r\n[/v1/actions/discounts-task/list](#operation/promos_task_list).\r\nЗаявки в статусах `NEW` (новые) или `SEEN` (просмотренные) вы можете:\r\n- одобрить — используйте метод [/v1/actions/discounts-task/approve](#operation/promos_task_approve),\r\n- отклонить — используйте метод [/v1/actions/discounts-task/decline](#operation/promos_task_decline).\r\n\r\n[Подробнее об акциях в Базе знаний продавца](https://seller-edu.ozon.ru/docs/how-to-sell-effectively/promo/promo.html)\r\n\r\n# Настройте стратегии ценообразования\r\n\r\nСтратегии ценообразования — инструмент для автоматического изменения стоимости товаров в соответствии с ценами на аналогичные товары в других интернет-магазинах и маркетплейсах.\r\n\r\n[Подробнее о стратегиях в Базе знаний для продавцов из России](https://seller-edu.ozon.ru/work-with-goods/rabota-s-tsenami/rival-strategies)\r\n\r\n[Подробнее о стратегиях в Справке для продавцов Ozon Global](https://docs.ozon.ru/global/prices/pricing-strategies/)\r\n\r\nЧтобы настроить стратегии ценообразования:\r\n\r\n1. Получите список конкурентов: [/v1/pricing-strategy/competitors/list](#operation/pricing_competitors).\r\n\r\n2. Получите список стратегий ценообразования: [/v1/pricing-strategy/list](#operation/pricing_list).\r\n\r\n3. Создайте свою стратегию: [/v1/pricing-strategy/create](#operation/pricing_create) и установите коэффициенты, чтобы изменять стоимость товара по сравнению с другими площадками в большую и меньшую сторону.\r\n Чтобы получить информацию о стратегии, используйте метод [/v1/pricing-strategy/info](#operation/pricing_info).\r\n\r\n4. Добавьте товары в стратегию: [/v1/pricing-strategy/products/add](#operation/pricing_items-add).\r\n \r\n Вы можете добавить товары:\r\n - На которые установлена минимальная цена с помощью метода [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices). \r\n Чтобы проверить цену, используйте метод [/v5/product/info/prices](#operation/ProductAPI_GetProductInfoPrices).\r\n - Которые не привязаны к другой стратегии.\r\n Чтобы проверить привязку товара к стратегии, используйте метод [/v1/pricing-strategy/strategy-ids-by-product-ids](#operation/pricing_ids).\r\n\r\n Чтобы получить список товаров, которые привязаны к стратегии, используйте метод [/v1/pricing-strategy/products/list](#operation/pricing_items-list), а для удаления товаров из стратегии — [/v1/pricing-strategy/products/delete](#operation/pricing_items-delete).\r\n\r\n5. Включите или отключите стратегию: [/v1/pricing-strategy/status](#operation/pricing_status).\r\n\r\nЧтобы изменить список выбранных конкурентов и название стратегии, используйте метод [/v1/pricing-strategy/update](#operation/pricing_update).\r\n\r\nДля удаления стратегии используйте метод [/v1/pricing-strategy/delete](#operation/pricing_delete).\r\n\r\n# Получите информацию о складах\r\n\r\n- [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList) — получите список методов склада.\r\n\r\n- [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList) — получите список складов.\r\n\r\n# Управляйте заказами FBO, FBS и rFBS\r\n\r\nОбработайте заказы в зависимости от схемы работы:\r\n\r\n- [cхема FBO](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBO);\r\n- [стандартная схема FBS](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-Standart);\r\n- [схема FBS PickUp с подключённой доверительной приёмкой](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-PickUp-s-doveritelnoj-priyomkoj);\r\n- [стандартная схема rFBS](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Standart);\r\n- [схема rFBS Express с доставкой в пункт выдачи](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Express-s-dostavkoj-v-punkt-vydachi);\r\n- [схема rFBS с доставкой через интегрированную службу](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-s-integrirovannoj-sluzhboj-dostavki);\r\n- [схема rFBS Агрегатор](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Agregator).\r\n\r\nЕсли вы продаёте товары из-за рубежа, обрабатывайте заказы по одной из схем:\r\n\r\n- [rFBS Crossborder](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Crossborder);\r\n- [rFBS Crossborder с интегрированной службой доставки](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Crossborder-s-integrirovannoj-sluzhboj-dostavki);\r\n- [rFBS Агрегатор](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Agregator).\r\n\r\n[Подробнее о заказах с весовыми товарами при работе по схеме rFBS](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Kak-rabotat-s-zakazami-s-vesovymi-tovarami-(rFBS))\r\n\r\n## Схема FBO\r\n\r\nПеред созданием заявки на поставку проверьте загруженность складов Ozon: [/v1/supplier/available_warehouses](#operation/SupplierAPI_SupplierAvailableWarehouses).\r\n\r\nДля получения списка отправлений, финансовой и аналитической информации\r\nиспользуйте [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList). Также метод возвращает информацию о\r\nпроданных кодах активации с привязкой к номеру отправления.\r\n\r\nЧтобы получить информацию по отправлению, используйте [/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting).\r\n\r\n### Создать заявку на поставку\r\n\r\n1. [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList) — получите информацию по кластерам и их складам.\r\n2. [/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList) — получите идентификаторы складов, пунктов выдачи заказов и сортировочных центров для отгрузки кросс-докингом.\r\n3. [/v1/draft/create](#operation/SupplyDraftAPI_DraftCreate) — создайте черновик заявки на поставку. Для этого передайте список поставляемых товаров, тип поставки и, при доставке кросс-докингом, точку отгрузки.\r\n4. [/v1/draft/create/info](#operation/SupplyDraftAPI_DraftCreateInfo) — получите статус создания черновика и информацию по нему.\r\n5. [/v1/draft/timeslot/info](#operation/SupplyDraftAPI_DraftTimeslotInfo) — получите доступные таймслоты для конечных складов отгрузки. Максимальный период — 28 дней, начиная с текущей даты.\r\n6. [/v1/draft/supply/create](#operation/SupplyDraftAPI_DraftSupplyCreate) — создайте заявку на поставку по черновику.\r\n7. [/v1/supply/create/status](#operation/SupplyDraftAPI_DraftSupplyCreateStatus) — получите статус создания заявки на поставку. Когда заявка будет создана, метод вернёт идентификаторы заявок на поставку.\r\n\r\n### Получите информацию о заявках на поставку\r\n\r\nДля поставки на фулфилмент Ozon нужна заявка. В ней указано, какие товары и в каком количестве вы привезёте. \r\n\r\n1. [/v2/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersListV2) — получите список заявок на поставку.\r\n2. [/v1/supply-order/status/counter](#operation/SupplyOrderAPI_SupplyOrderStatusCounter) — получите статус заявки и количество поставок в этом статусе.\r\n3. [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2) — получите информацию по заявке.\r\n4. [v1/supply-order/bundle](#operation/SupplyOrderBundle) — получите состав поставки или заявки на поставку.\r\n\r\nДля проезда на фулфилмент выберите интервал поставки и оформите пропуск для водителя и автомобиля. Для этого:\r\n\r\n1. [/v1/supply-order/timeslot/get](#operation/SupplyOrderAPI_GetSupplyOrderTimeslots) — получите список доступных интервалов.\r\n2. [/v1/supply-order/timeslot/update](#operation/SupplyOrderAPI_UpdateSupplyOrderTimeslot) — измените выбранный интервал.\r\n3. [/v1/supply-order/timeslot/status](#operation/SupplyOrderAPI_GetSupplyOrderTimeslotStatus) — получите статус закрепления интервала.\r\n4. [/v1/supply-order/pass/create](#operation/SupplyOrderAPI_SupplyOrderPassCreate) — добавьте данные водителя и автомобиля.\r\n5. [/v1/supply-order/pass/status](#operation/SupplyOrderAPI_SupplyOrderPassStatus) — получите статус ввода данных о водителе и автомобиле.\r\n\r\n### Управляйте грузоместами в заявке на поставку\r\n\r\n1. [/v1/cargoes/create](#operation/CargoesAPI_CargoesCreate) — передайте количество грузомест и установите в каждое грузоместо товарный состав.\r\n2. [/v1/cargoes/create/info](#operation/CargoesAPI_CargoesCreateInfo) — получите информацию по установке грузомест и товарного состава.\r\n3. [/v1/cargoes-label/create](#operation/CargoesAPI_CargoesLabelCreate) — создайте задание на формирование этикеток грузомест.\r\n4. [/v1/cargoes-label/get](#operation/CargoesAPI_CargoesLabelGet) — получите статус создания этикеток и идентификатор файла с ними.\r\n5. [/v1/cargoes-label/file/{file_guid}](#operation/CargoesAPI_CargoesLabelFile) — получите PDF с этикетками грузовых мест.\r\n\r\n## Схема FBS Стандарт\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных\r\n отправлений: [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)\r\n и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n Получите идентификаторы экземпляров `exemplar_id` методом [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n \r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n \r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. Перед сборкой убедитесь, что отправление соответствует установленным в пункте приёма ограничениям. Получите\r\n ограничения пункта приёма по номеру\r\n отправления: [/v1/posting/fbs/restrictions](#operation/PostingAPI_GetRestrictions).\r\n\r\n5. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\n6. Для каждого отправления распечатайте наклейку для идентификации в системе\r\n Ozon: [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel).\r\n\r\n7. Подтвердите отгрузку и запустите формирование транспортной накладной методом [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate) или создайте отгрузку с помощью метода [/v1/carriage/create](#operation/CarriageAPI_CarriageCreate) и подтвердите её методом [/v1/carriage/approve](#operation/CarriageAPI_CarriageApprove). \r\n В ответе методов [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate) и [/v1/carriage/create](#operation/CarriageAPI_CarriageCreate) вы получите идентификатор созданной перевозки.\r\n\r\n8. Запросите информацию о созданной поставке с помощью метода [/v1/carriage/get](#operation/CarriageGet). \r\n Массив `available_actions` содержит информацию о доступных действиях с поставкой и необходимости создать пропуск для проезда на склад Ozon.\r\n\r\n Чтобы создать пропуск, используйте метод [/v1/carriage/pass/create](#operation/carriagePassCreate). \r\n Чтобы после поставки товаров вы могли забрать возвраты на этой же машине, передайте значение `with_returns = true`.\r\n Для каждой поставки нужен новый пропуск.\r\n\r\n Для редактирования или удаления пропуска используйте методы [/v1/carriage/pass/update](#operation/carriagePassUpdate) и [/v1/carriage/pass/delete](#operation/carriagePassDelete).\r\n\r\n Список всех пропусков можно получить с помощью метода [/v1/pass/list](#operation/PassList).\r\n\r\n [Подробнее об оформлении пропусков](https://seller-edu.ozon.ru/fbs/ozon-logistika/oformlenie-propuska)\r\n\r\n9. Получите список перевозок, по которым нужно распечатать штрихкод для отгрузки и транспортную накладную: [/v1/posting/carriage-available/list](#operation/PostingAPI_GetCarriageAvailableList) или [/v1/carriage/delivery/list](#operation/CarriageAPI_CarriageDeliveryList).\r\n\r\n10. Проверьте, что отгрузка создана: [/v2/posting/fbs/act/check-status](#operation/PostingAPI_PostingFBSActCheckStatus).\r\n\r\n11. Получите штрихкод для отгрузки: [/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode).\r\n\r\n12. Проверьте статус формирования накладной: [/v2/posting/fbs/digital/act/check-status](#operation/PostingAPI_PostingFBSDigitalActCheckStatus).\r\n Когда статус документа перейдёт в `FORMED`, получите файлы:\r\n - Транспортная накладная: [/v2/posting/fbs/act/get-pdf](#operation/PostingAPI_PostingFBSGetAct).\r\n - Лист отгрузки: [/v2/posting/fbs/digital/act/get-pdf](#operation/PostingAPI_PostingFBSGetDigitalAct).\r\n\r\nПосле этого можете отвезти отправления и документы в пункт приёма.\r\n\r\nЕсли отправление передано в доставку, но не просканировано в сортировочном центре, вы можете открыть\r\nспор: [/v2/posting/fbs/arbitration](#operation/PostingAPI_MoveFbsPostingToArbitration). Открытый спор переведёт\r\nотправление в статус `arbitration`.\r\n\r\nЕсли спор по отправлению откроет покупатель, статус отправления изменится на `client_arbitration`.\r\n\r\nЧтобы отследить изменение статуса, когда отправление найдено,\r\nиспользуйте [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) с нужными фильтрами.\r\n\r\nДля передачи спорных заказов к отгрузке\r\nиспользуйте [/v2/posting/fbs/awaiting-delivery](#operation/PostingAPI_MoveFbsPostingToAwaitingDelivery). Статус\r\nотправления изменится на `awaiting_deliver`.\r\n\r\n### Отменить доставку отправления\r\n\r\n1. Используйте [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) на любом этапе\r\n работы с отправлением, чтобы получить список причин отмены отправления.\r\n\r\n2. Передайте этот список и номер отправления: [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nЧтобы отменить часть товаров в отправлении,\r\nиспользуйте [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct).\r\n\r\nЕсли отправление отменит покупатель, статус изменится на `cancelled`.\r\n\r\n### Работа с эконом-товарами\r\n\r\n1. Создайте эконом-товары в [личном кабинете](https://seller.ozon.ru/app/econom/products).\r\n2. Получите идентификаторы квантов с созданными товарами: [/v1/product/quant/list](#operation/QuantProductList).\r\n\r\n[Подробнее об эконом-товарах в Справке](https://seller-edu.ozon.ru/tarif-ekonom)\r\n\r\n## Схема FBS PickUp с доверительной приёмкой\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных\r\n отправлений: [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) и\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. Перед сборкой убедитесь, что отправление соответствует установленным в пункте приёма ограничениям. Получите\r\n ограничения пункта приёма по номеру\r\n отправления: [/v1/posting/fbs/restrictions](#operation/PostingAPI_GetRestrictions).\r\n\r\n5. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\n6. Подтвердите отгрузку и запустите формирование транспортной накладной методом [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate) или создайте перевозку с помощью метода [/v1/carriage/create](#operation/CarriageAPI_CarriageCreate) и подтвердите её методом [/v1/carriage/approve](#operation/CarriageAPI_CarriageApprove).\r\n В ответе методов [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate) и [/v1/carriage/create](#operation/CarriageAPI_CarriageCreate) вы получите идентификатор созданной перевозки.\r\n\r\n7. Получите список перевозок, по которым нужно распечатать штрихкод для отгрузки и транспортную накладную: [/v1/posting/carriage-available/list](#operation/PostingAPI_GetCarriageAvailableList) или [/v1/carriage/delivery/list](#operation/CarriageAPI_CarriageDeliveryList).\r\n\r\n8. Проверьте статус формирования накладной: [/v2/posting/fbs/digital/act/check-status](#operation/PostingAPI_PostingFBSDigitalActCheckStatus).\r\n Когда статус документа перейдёт в `FORMED`, получите файлы:\r\n - Транспортная накладная: [/v2/posting/fbs/act/get-pdf](#operation/PostingAPI_PostingFBSGetAct).\r\n - Лист отгрузки: [/v2/posting/fbs/digital/act/get-pdf](#operation/PostingAPI_PostingFBSGetDigitalAct).\r\n\r\n9. Для каждого отправления распечатайте наклейку для идентификации в системе\r\n Ozon: [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel).\r\n\r\n10. После того как вы упаковали все отправления по требованиям из\r\n раздела [Доверительная приёмка грузового места](https://seller-edu.ozon.ru/docs/fbs/ozon-logistika/doveritel-naya-priemka-gruzovogo-mesta.html#какие-требования-к-грузовому-месту)\r\n в Базе знаний продавца, получите этикетки на каждое грузовое\r\n место: [/v2/posting/fbs/act/get-container-labels](#operation/PostingAPI_PostingFBSActGetContainerLabels).\r\n\r\nПосле этого можете передать грузовое место в пункт приёма или курьеру Ozon.\r\n\r\nЕсли отправление передано в доставку, но не просканировано в сортировочном центре, вы можете открыть\r\nспор: [/v2/posting/fbs/arbitration](#operation/PostingAPI_MoveFbsPostingToArbitration). Открытый спор переведёт\r\nотправление в статус `arbitration`.\r\n\r\nЕсли спор по отправлению откроет покупатель, статус отправления изменится на `client_arbitration`.\r\n\r\nЧтобы отследить изменение статуса, когда отправление найдено,\r\nиспользуйте [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) с нужными фильтрами.\r\n\r\nДля передачи спорных заказов к отгрузке\r\nиспользуйте [/v2/posting/fbs/awaiting-delivery](#operation/PostingAPI_MoveFbsPostingToAwaitingDelivery). Статус\r\nотправления изменится на `awaiting_deliver`.\r\n\r\n## Схема rFBS Стандарт\r\n\r\n\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных заказов (отправлений):\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. \r\n Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n Если в параметре `available_actions` указано `set_cutoff`, уточните дату отгрузки отправления с помощью метода\r\n [/v1/posting/cutoff/set](#operation/PostingAPI_SetPostingCutoff). Сделайте это не позднее даты, которая указана в\r\n параметре `shipment_date` в методах: [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList),\r\n [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) или [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n После даты `shipment_date` уточнить дату отгрузки и собрать отправление не получится.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)\r\n и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок: \r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\nКогда сборка заказа завершена, свяжитесь с покупателем для согласования даты доставки.\r\nЕсли покупателю не подходит дата, вы можете перенести её: [/v1/posting/fbs/timeslot/set](#operation/PostingAPI_SetPostingTimeslot).\r\nПосмотрите доступные даты для переноса доставки и количество доступных переносов: [/v1/posting/fbs/timeslot/change-restrictions](#operation/PostingAPI_PostingTimeslotChangeRestrictions).\r\n\r\nПередайте отправление курьеру:\r\n\r\n1. Когда курьер забрал отправление, измените статус отправления на\r\n «Доставляется»: [/v2/fbs/posting/delivering](#operation/PostingAPI_FbsPostingDelivering).\r\n\r\n \r\n\r\n Одновременно с этим, если у отправления есть трек-номер, передайте\r\n его: [/v2/fbs/posting/tracking-number/set](#operation/PostingAPI_FbsPostingTrackingNumberSet).\r\n\r\n2. Когда курьер едет к покупателю, поменяйте статус отправления на «Последняя\r\n миля»: [/v2/fbs/posting/last-mile](#operation/PostingAPI_FbsPostingLastMile).\r\n\r\n3. Когда курьер передал отправление покупателю, поменяйте статус на\r\n «Доставлено»: [/v2/fbs/posting/delivered](#operation/PostingAPI_FbsPostingDelivered).\r\n\r\n### Отменить доставку отправления\r\n\r\n1. Используйте [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) на любом этапе\r\n работы с отправлением, чтобы получить список причин отмены отправления.\r\n\r\n2. Передайте этот список и номер отправления: [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nЧтобы отменить часть товаров в отправлении,\r\nиспользуйте [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct).\r\n\r\nЕсли отправление отменит покупатель, статус изменится на `cancelled`.\r\n\r\n## Схема rFBS Express с доставкой в пункт выдачи\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных заказов (отправлений):\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать страну-производителя для всех товаров в заказе, у которых она не указана.\r\n Получите список доступных для выбора стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). \r\n Затем передайте информацию о стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. \r\n Можно также получить данные аналитики, если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». \r\n При необходимости передайте номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. До окончания времени на сборку подтвердите, что вы собрали заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). \r\n Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. \r\n Например, если в заказе несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\n5. Распечатайте этикетку для идентификации в системе Ozon: [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel). \r\n\r\n6. Передайте отправление курьеру.\r\n\r\nДальше подстатусы будут изменяться автоматически: \r\n1. `on_way_to_city` — курьер забрал заказ. \r\n2. `on_way_to_pickup_point` — курьер везёт заказ в пункт выдачи.\r\n3. `in_pickup_point` — отправление приняли в пункте выдачи.\r\n4. `delivered` — покупатель забрал заказ из пункта выдачи.\r\n\r\nЧтобы проверить статус отправления, используйте метод [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n\r\n### Отменить доставку отправления\r\n\r\n1. Используйте [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) на любом этапе\r\n работы с отправлением, чтобы получить список причин отмены отправления.\r\n\r\n2. Передайте этот список и номер отправления: [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nЧтобы отменить часть товаров в отправлении, используйте [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct).\r\n\r\nЕсли отправление отменит покупатель, статус изменится на `cancelled`.\r\n\r\n## Схема rFBS с интегрированной службой доставки\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных заказов (отправлений):\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)\r\n и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\nПередайте отправление в службу доставки. Все статусы от «Доставляется» до «Доставлено» будет передавать служба доставки.\r\n\r\n### Отменить доставку отправления\r\n\r\n1. Используйте [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) на любом этапе\r\n работы с отправлением, чтобы получить список причин отмены отправления.\r\n\r\n2. Передайте этот список и номер отправления: [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nЧтобы отменить часть товаров в отправлении,\r\nиспользуйте [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct).\r\n\r\nЕсли отправление отменит покупатель, статус изменится на `cancelled`.\r\n\r\n## Схема rFBS Агрегатор\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных заказов (отправлений):\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)\r\n и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. Если товар в отправлении упакован в несколько коробок, передайте их количество: [/v3/posting/multiboxqty/set](#operation/PostingAPI_PostingMultiBoxQtySetV3). Если не сделать этого до сборки, вам придётся объединить все коробки в одну.\r\n\r\n5. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_registration`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\n6. Когда перевозчик обработает отправление, его статус изменится с `awaiting_registration` на `awaiting_delivery`. После\r\n этого отправлению будет присвоен трек-номер.\r\n\r\n Для каждого отправления распечатайте этикетку для идентификации в системе\r\n Ozon: [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel).\r\n\r\n Передайте отправление в службу доставки. Все статусы от «Доставляется» до «Доставлено» будет передавать служба доставки.\r\n\r\nЕсли вы продаёте из Турции и вам нужны декларации Elektronik Ticaret Gümrük Beyannamesi (ETGB) для возврата налоговой пошлины, \r\nполучите декларации: [/v1/posting/global/etgb](#operation/PostingAPI_GetEtgb).\r\n\r\n### Отменить доставку отправления\r\n\r\n1. Используйте [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) на любом этапе\r\n работы с отправлением, чтобы получить список причин отмены отправления.\r\n\r\n2. Передайте этот список и номер отправления: [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nЧтобы отменить часть товаров в отправлении,\r\nиспользуйте [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct).\r\n\r\nЕсли отправление отменит покупатель, статус изменится на `cancelled`.\r\n\r\n## Схема rFBS Crossborder\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных заказов (отправлений):\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. \r\n Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n Если в параметре `available_actions` указано `set_cutoff`, уточните дату отгрузки отправления с помощью метода\r\n [/v1/posting/cutoff/set](#operation/PostingAPI_SetPostingCutoff). Сделайте это не позднее даты, которая указана в\r\n параметре `shipment_date` в методах: [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList),\r\n [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) или [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n После даты `shipment_date` уточнить дату отгрузки и собрать отправление не получится.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)\r\n и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\n5. Если в настройках метода доставки вы задали временной промежуток для передачи отправления в службу доставки, измените\r\n статус отправления на `sent_by_seller` — «Отправлено\r\n продавцом»: [/v2/fbs/posting/sent-by-seller](#operation/PostingAPI_FbsPostingSentbyseller).\r\n\r\n6. После передачи отправления в службу доставки измените статус отправления на `delivering` —\r\n «Доставляется»: [/v2/fbs/posting/delivering](#operation/PostingAPI_FbsPostingDelivering).\r\n\r\n7. Одновременно с этим, если у отправления есть трек-номер, передайте\r\n его: [/v2/fbs/posting/tracking-number/set](#operation/PostingAPI_FbsPostingTrackingNumberSet).\r\n\r\n8. Когда курьер едет к покупателю, поменяйте статус отправления на «Последняя\r\n миля»: [/v2/fbs/posting/last-mile](#operation/PostingAPI_FbsPostingLastMile).\r\n\r\n9. Когда курьер передал отправление покупателю, поменяйте статус на\r\n «Доставлено»: [/v2/fbs/posting/delivered](#operation/PostingAPI_FbsPostingDelivered).\r\n\r\n## Схема rFBS Crossborder с интегрированной службой доставки\r\n\r\n1. Перед началом работы с отправлениями получите список необработанных заказов (отправлений):\r\n [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Если покупатель юридическое лицо, то в блоке `requirements` будет информация о необходимости передать\r\n страну-производителя для всех товаров в заказе, у которых она не указана. \r\n Получите список доступных для выбора\r\n стран: [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2). Затем передайте\r\n информацию о\r\n стране-производителе: [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\r\n\r\n Также можно получать список заказов (отправлений): [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3).\r\n Он позволяет получить все заказы, используя фильтры с различными статусами. Можно также получить данные аналитики,\r\n если поле `with` отправить со значением `analytics_data`.\r\n\r\n Отправления могут прийти в статусах `awaiting_packaging`, `awaiting_approve` или `awaiting_verification`.\r\n\r\n2. Получите дополнительную информацию о заказах: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3).\r\n\r\n В блоке `requirements` указывается:\r\n - какие товары подлежат обязательной маркировке;\r\n - нужно ли передать номер грузовой таможенной декларации и регистрационный номер партии товара — эту информацию\r\n также можно получить с помощью методов [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)\r\n и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList).\r\n\r\n Дополнительную информацию вы также можете получить по\r\n штрихкоду: [/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode).\r\n\r\n3. Проверьте, что коды маркировки соответствуют требованиям системы «Честный ЗНАК» по составу и количеству\r\n символов: [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate).\r\n\r\n С помощью метода [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавьте для каждого экземпляра маркировку, которую будете передавать в систему «Честный ЗНАК». При необходимости передайте\r\n номера таможенных деклараций и регистрационные номера партии товара или укажите, что их нет.\r\n\r\n [Подробнее о маркировке «Честный ЗНАК» в Базе знаний](https://seller-edu.ozon.ru/work-with-goods/trebovaniya-k-kartochkam-tovarov/product-information/obyazatelnaya-markirovka-tovarov)\r\n\r\n Получите статусы передачи маркировок:\r\n\r\n- [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) — получить статус добавления экземпляров.\r\n- [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) — получить данные созданных экземпляров.\r\n\r\n4. До окончания времени на сборку подтвердите, что вы собрали\r\n заказ: [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). Вы не сможете собрать заказ, если:\r\n - заказ не в статусе `awaiting_packaging`;\r\n - вы не указали коды маркировки для товаров, подлежащих обязательной маркировке.\r\n\r\n При необходимости используйте этот метод, чтобы разделить заказ на несколько отправлений. Например, если в заказе\r\n несколько товаров и их необходимо упаковать в разные коробки, так как вместе они не отвечают требованиям к упаковке.\r\n\r\n После использования метода статус отправления изменится на `awaiting_deliver`.\r\n\r\n Вы можете использовать метод для частичной\r\n сборки: [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage).\r\n\r\n5. Для каждого отправления распечатайте этикетку для идентификации в системе\r\n Ozon: [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel).\r\n\r\n6. Если в настройках метода доставки вы задали временной промежуток для передачи отправления в службу доставки, измените\r\n статус отправления на `sent_by_seller` — «Отправлено\r\n продавцом»: [/v2/fbs/posting/sent-by-seller](#operation/PostingAPI_FbsPostingSentbyseller).\r\n\r\nПередайте отправление в службу доставки. Все статусы от «Доставляется» до «Доставлено» будет передавать служба доставки.\r\n\r\n### Отменить доставку отправления\r\n\r\n1. Используйте [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) на любом этапе\r\n работы с отправлением, чтобы получить список причин отмены отправления.\r\n\r\n2. Передайте этот список и номер отправления: [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nЧтобы отменить часть товаров в отправлении,\r\nиспользуйте [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct).\r\n\r\nЕсли отправление отменит покупатель, статус изменится на `cancelled`.\r\n\r\n## Как работать с заказами с весовыми товарами (rFBS)\r\n\r\nПеред тем, как перевести заказ с весовыми товарами в статус «Ожидает отгрузки» — `awaiting_delivery`, передайте\r\nуточнённые данные о весе весовых товаров. Для этого после взвешивания во время сборки передайте информацию о весе\r\nкаждого экземпляра каждого весового SKU через\r\nметод [/v2/posting/fbs/product/change](#operation/PostingAPI_CancelFbsPosting).\r\n\r\nТовар необходимо взвешивать, если при создании товара вы указали, что товар весовой, и добавили к нему атрибуты 20577,\r\n8933 и 8934.\r\n\r\nПосле передачи корректного веса для всех экземпляров всех весовых товаров вы сможете перевести отправление в статус\r\n«Ожидает отгрузки» — `awaiting_delivery`.\r\n\r\nAPI вернёт ошибку 400, если вы:\r\n\r\n- взвесили не все экземпляры из отправления,\r\n- передали значение веса для невесового товара,\r\n- вес экземпляра не попал в диапазон заданный атрибутами 8933 и 8934.\r\n\r\n# Работа с архивом актов\r\n\r\n
\r\n\r\n- [/v2/posting/fbs/act/list](#operation/PostingAPI_FbsActList) — получите список сформированных ранее актов.\r\n- [/v2/posting/fbs/act/get-postings](#operation/PostingAPI_ActPostingList) — получите список отправлений по каждому\r\n акту.\r\n\r\n# Получите информацию о возвратах товаров\r\n\r\n[/v1/returns/list](#operation/returnsList) — получите информацию о возвращённых товарах.\r\n\r\n# Получите возвратные отгрузки по штрихкоду\r\n\r\nУбедитесь, что вы можете получать возвратные отгрузки по штрихкоду: [/v1/return/giveout/is-enabled](#operation/ReturnAPI_GiveoutIsEnabled). Если у вас есть доступ, в параметре `enabled` будет указано значение `true`.\r\n\r\nЧтобы получить возвратную отгрузку, запросите штрихкод:\r\n- [/v1/return/giveout/get-pdf](#operation/ReturnAPI_GiveoutGetPDF) — получить штрихкод в формате PDF.\r\n- [/v1/return/giveout/get-png](#operation/ReturnAPI_GiveoutGetPNG) — получить штрихкод в формате PNG.\r\n- [/v1/return/giveout/barcode](#operation/ReturnAPI_GiveoutGetBarcode) — получить штрихкод в текстовом виде.\r\n\r\nПолучите информацию и список возвратных отгрузок:\r\n- [/v1/return/giveout/list](#operation/ReturnAPI_GiveoutList) — получить список возвратных отгрузок.\r\n- [/v1/return/giveout/info](#operation/ReturnAPI_GiveoutInfo) — получить информацию о выбранной отгрузке.\r\n \r\nВы можете забрать возвраты отдельно от поставки товаров. Если для проезда на склад Ozon нужен пропуск, создайте его с помощью метода [/v1/return/pass/create](#operation/returnPassCreate).\r\nДля каждого проезда за возвратами нужен новый пропуск.\r\n\r\nДля редактирования и удаления пропуска используйте методы [/v1/return/pass/update](#operation/returnPassUpdate) и [/v1/return/pass/delete](#operation/returnPassDelete).\r\n \r\nСписок всех пропусков можно получить с помощью метода [/v1/pass/list](#operation/PassList).\r\n\r\n[Подробнее об оформлении пропусков](https://seller-edu.ozon.ru/fbs/ozon-logistika/oformlenie-propuska)\r\n\r\n# Управляйте заявками на возврат rFBS-заказов\r\n\r\nПолучите заявки и информацию о них:\r\n\r\n- [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2) — получите информацию по\r\n заявке на возврат rFBS.\r\n- [/v2/returns/rfbs/list](#operation/RFBSReturnsAPI_ReturnsRfbsListV2) — получите список\r\n заявок на возврат rFBS.\r\n\r\nВы можете одобрить, компенсировать, подтвердить возврат денег, запросить товар для проверки и отклонить заявку методом [/v1/returns/rfbs/action/set](#operation/ReturnsAPI_ReturnsRfbsActionSet). \r\nДля передачи корректного `action` получите список доступных для конкретного возврата, в методе [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2).\r\n\r\n# Управляйте заявками на отмену\r\n\r\nПолучите заявки и информацию о них: [/v2/conditional-cancellation/list](#operation/CancellationAPI_GetConditionalCancellationListV2).\r\n\r\nПримите решение по новой заявке на отмену — подтвердите или отклоните её:\r\n\r\n- [/v2/conditional-cancellation/approve](#operation/CancellationAPI_ConditionalCancellationApproveV2) — подтвердите заявку\r\n на отмену rFBS. Заказ будет автоматически отменён, а деньги вернутся покупателю.\r\n- [/v2/conditional-cancellation/reject](#operation/CancellationAPI_ConditionalCancellationRejectV2) — отклоните заявку на\r\n отмену rFBS. Заказ останется в том же статусе, и его нужно будет доставить покупателю.\r\n\r\n# Управляйте чатами\r\n\r\nДля получения списка чатов используйте [/v3/chat/list](#operation/ChatAPI_ChatListV3). В ответе будут идентификаторы текущих чатов и последних сообщений.\r\n\r\nДля отправки сообщений по идентификатору чата используйте методы:\r\n\r\n- [/v1/chat/send/message](#operation/ChatAPI_ChatSendMessage) — для отправки текстового сообщения.\r\n\r\n- [/v1/chat/send/file](#operation/ChatAPI_ChatSendFile) — для отправки файла или изображения.\r\n\r\nДля получения истории чата по идентификатору чата или сообщения используйте метод [/v3/chat/history](#operation/ChatAPI_ChatHistoryV3). Направление сортировки по\r\n умолчанию — от новых сообщений к старым.\r\n\r\nЕсли указать идентификатор сообщения, то история начнётся с этого сообщения.\r\n\r\nЧтобы создать новый чат с покупателем по номеру отправления,\r\nвоспользуйтесь [/v1/chat/start](#operation/ChatAPI_ChatStart).\r\n\r\nЧтобы отметить сообщение и все сообщения до него прочитанными,\r\nиспользуйте [/v2/chat/read](#operation/ChatAPI_ChatReadV2).\r\n\r\n# Создайте и получите отчёты\r\n\r\nПри запросе любого из отчётов сначала возвращается код на создание документа. Отправьте его в запросе метода\r\n[/v1/report/info](#operation/ReportAPI_ReportInfo) — в ответе вернётся файл отчёта и дополнительная информация.\r\n\r\nЧтобы получить список сформированных ранее отчётов, используйте [/v1/report/list](#operation/ReportAPI_ReportList).\r\n\r\nМетоды для получения отчётов:\r\n\r\n- [/v1/report/products/create](#operation/ReportAPI_CreateCompanyProductsReport) — отчёт с данными о товарах, например\r\n Ozon ID, описанием товара, цены, комиссии или габаритов упаковки.\r\n\r\n- [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) — отчёт по транзакциям,\r\n доступный в личном кабинете продавца.\r\n\r\n- [/v4/product/info/price](#operation/ProductAPI_GetProductInfoPricesV4) — отчёт по ценам.\r\n\r\n- [/v1/report/warehouse/stock](#operation/ReportAPI_CreateStockByWarehouseReport) — отчёт по остаткам на складе.\r\n\r\n- [/v2/report/returns/create](#operation/ReportAPI_ReportReturnsCreate) — отчёт о возвращённых товарах для FBS и\r\n rFBS. Отчёт содержит товары, принятые от покупателя, готовые к получению или переданные продавцу.\r\n\r\n- [/v1/report/postings/create](#operation/ReportAPI_CreateCompanyPostingsReport) — отчёт об отправлениях.\r\n\r\n- [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList) — финансовый отчёт.\r\n\r\n- [/v1/report/discounted/create](#operation/ReportAPI_CreateDiscountedReport) — отчёт об уценённых товарах.\r\n\r\n# Получите аналитические отчёты\r\n\r\n- [/v1/analytics/data](#operation/AnalyticsAPI_AnalyticsGetData) — получите данные аналитики.\r\n\r\n Если укажете период и метрики, которые нужно рассчитать, в ответе будет аналитиĸа, сгруппированная по параметру\r\n `dimensions`.\r\n\r\n- [/v1/analytics/stocks](#operation/AnalyticsAPI_AnalyticsStocks) — получите аналитику по остаткам товаров на складах.\r\n\r\nЧтобы получить отчёт по оборачиваемости FBO, запросите его в [личном кабинете](https://seller.ozon.ru/app/analytics/fulfillment-reports/turnover).\r\n\r\n# Получите финансовые отчёты\r\n\r\n- [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) — получите подробную информацию по\r\n транзакциям для отправления.\r\n\r\n- [/v3/finance/transaction/totals](#operation/FinanceAPI_FinanceTransactionTotalV3) — получите детальную информацию по\r\n итоговым суммам транзакций за указанный период.\r\n\r\n# Получите информацию о рейтинге\r\n\r\n- [/v1/rating/summary](#operation/RatingAPI_RatingSummaryV1) — получите текущие значения рейтингов продавца.\r\n\r\n- [/v1/rating/history](#operation/RatingAPI_RatingHistoryV1) — получите информацию о рейтингах продавца за период и\r\n количество штрафных баллов, начисленных в Premium-программе." + }, + { + "name": "CategoryAPI", + "x-displayName": "Атрибуты и характеристики Ozon" + }, + { + "name": "ProductAPI", + "x-displayName": "Загрузка и обновление товаров" + }, + { + "name": "BarcodeAPI", + "x-displayName": "Штрихкоды товаров" + }, + { + "name": "Prices&StocksAPI", + "x-displayName": "Цены и остатки товаров" + }, + { + "name": "Promos", + "x-displayName": "Акции", + "description": "Для продвижения товаров участвуйте в акциях, которые Ozon проводит для покупателей.\r\nПодробнее об акциях в [Базе знаний продавца](https://seller-edu.ozon.ru/docs/how-to-sell-effectively/promo/promo.html)." + }, + { + "name": "PricingStrategyAPI", + "x-displayName": "Стратегии ценообразования" + }, + { + "name": "BrandAPI", + "x-displayName": "Сертификаты брендов" + }, + { + "name": "CertificationAPI", + "x-displayName": "Сертификаты качества" + }, + { + "name": "WarehouseAPI", + "x-displayName": "Склады" + }, + { + "name": "FBS", + "x-displayName": "Обработка заказов FBS и rFBS" + }, + { + "name": "FBO", + "x-displayName": "Доставка FBO" + }, + { + "name": "FboSupplyRequest", + "x-displayName": "Создание и управление заявками на поставку FBO" + }, + { + "name": "FBS&rFBSMarks", + "x-displayName": "Управление кодами маркировки и сборкой заказов для FBS/rFBS" + }, + { + "name": "DeliveryFBS", + "x-displayName": "Доставка FBS" + }, + { + "name": "DeliveryrFBS", + "x-displayName": "Доставка rFBS" + }, + { + "name": "Pass", + "x-displayName": "Пропуски" + }, + { + "name": "ReturnsAPI", + "x-displayName": "Возвраты товаров FBO и FBS" + }, + { + "name": "RFBSReturnsAPI", + "x-displayName": "Возвраты товаров rFBS" + }, + { + "name": "ReturnAPI", + "x-displayName": "Возвратные отгрузки" + }, + { + "name": "CancellationAPI", + "x-displayName": "Отмены заказов" + }, + { + "name": "PolygonAPI", + "x-displayName": "Полигоны" + }, + { + "name": "ChatAPI", + "x-displayName": "Чаты с покупателями" + }, + { + "name": "SupplierAPI", + "x-displayName": "Накладные" + }, + { + "name": "ReportAPI", + "x-displayName": "Отчёты" + }, + { + "name": "AnalyticsAPI", + "x-displayName": "Аналитические отчёты" + }, + { + "name": "FinanceAPI", + "x-displayName": "Финансовые отчёты" + }, + { + "name": "AccessTokenAPI", + "x-displayName": "Токен для API" + }, + { + "name": "SellerRating", + "x-displayName": "Рейтинг продавца", + "description": "Работая с Ozon, продавцы должны соблюдать требования по качеству обслуживания, срокам доставки и общению с клиентами. Система рейтингов отражает качество сервиса продавца, а некоторые показатели видны покупателям — это рейтинг товаров и индекс цен.\r\n\r\n[Подробнее о системе рейтингов в Базе знаний продавца](https://seller-edu.ozon.ru/docs/seller-rating/)" + }, + { + "name": "News", + "x-displayName": "Обновления", + "description": "
\r\n\r\n\r\n## 1 августа 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|\r\n| [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList)
[/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3)
[/v3/finance/transaction/totals](#operation/FinanceAPI_FinanceTransactionTotalV3) | Обновили описания методов. |\r\n\r\n## 30 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------|\r\n| [/v1/analytics/average-delivery-time/summary](#operation/AverageDeliveryTimeSummary) | Добавили бета-метод для получения общей аналитики по среднему времени доставки. |\r\n\r\n## 28 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/chat/list](#operation/ChatAPI_ChatListV3) | Добавили новую версию метода для получения информации о чатах по указанным фильтрам. |\r\n| [/v2/chat/list](#operation/ChatAPI_ChatListV2) | Метод устаревает и будет отключён в будущем. Переключитесь на новую версию [/v3/chat/list](#operation/ChatAPI_ChatListV3). |\r\n|[/v1/finance/document-b2b-sales/json](#operation/ReportAPI_CreateDocumentB2BSalesJSONReport)| Добавили параметр `invoices.buyer_info.name` в ответ метода. |\r\n| [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Обновили описание метода. |\r\n| [/v1/posting/digital/list](#operation/ListPostingCodes) | В ответе метода:
  • обновили описание параметра `result.status`;
  • удалили параметры `result.products.digital_codes` и `result.products.quantity`.
|\r\n\r\n## 24 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------|\r\n| [/v1/removal/from-supply/list](#operation/GetSupplyReturnsSummaryReport) | Добавили бета-метод для получения отчёта по вывозу и утилизации с поставки FBO. |\r\n| [/v1/removal/from-stock/list](#operation/GetSupplierReturnsSummaryReport) | Добавили бета-метод для получения отчёта по вывозу и утилизации со стока FBO. |\r\n| [/v1/finance/realization/posting](#operation/FinanceAPI_GetRealizationReportV1)
[/v2/finance/realization](#operation/FinanceAPI_GetRealizationReportV2) | Обновили описание методов. |\r\n\r\n## 23 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|\r\n| [/v1/analytics/product-queries](#operation/AnalyticsAPI_AnalyticsProductQueries)
[/v1/analytics/product-queries/details](#operation/AnalyticsAPI_AnalyticsProductQueriesDetails)
[/v1/finance/compensation](#operation/ReportAPI_GetCompensationReport)
[/v1/finance/decompensation](#operation/ReportAPI_GetDecompensationReport) | Перенесли методы из бета-раздела в основной. |\r\n\r\n## 22 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) | Обновили описание параметра `result.id` в ответе метода. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Обновили описание параметра `result.requirements.products_requiring_change_country` в ответе метода. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Обновили описание параметров `result.postings.requirements.products_requiring_change_country` и `result.postings.financial_data.products.actions` в ответе методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)
[/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)
[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList) | Обновили описание параметра `result.financial_data.products.actions` в ответе методов. |\r\n\r\n## 21 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------|\r\n| [/v1/finance/products/buyout](#operation/GetFinanceProductsBuyout)
[/v1/finance/document-b2b-sales/json](#operation/ReportAPI_CreateDocumentB2BSalesJSONReport)| Перенесли методы из бета-раздела в основной. |\r\n\r\n## 15 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------|\r\n| [/v1/finance/realization/by-day](#operation/FinanceAPI_GetRealizationByDayReportV1) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 14 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------|------------------------------------------------------------------------|\r\n| [/v1/roles](#operation/AccessAPI_RolesByToken) | Добавили бета-метод для получения списка ролей и методов по API-ключу. |\r\n\r\n## 2 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.requirements.products_requiring_change_country` в ответ метода. |\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Добавили параметр `result.postings.requirements.products_requiring_change_country` в ответ метода. |\r\n| [/v1/analytics/data](#operation/AnalyticsAPI_AnalyticsGetData) | Обновили описание метода. Обновили описание параметров `dimension` и `metrics` в запросе метода. |\r\n\r\n## 1 июля 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/finance/products/buyout](#operation/GetFinanceProductsBuyout) | Добавили бета-метод для получения отчёта по выкупленным товарам. |\r\n| [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)
[/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.products.is_marketplace_buyout` в ответы методов. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Добавили параметр `result.postings.products.is_marketplace_buyout` в ответы методов. |\r\n| [/v2/chat/history](#operation/ChatAPI_ChatHistoryV2)
[/v3/chat/history](#operation/ChatAPI_ChatHistoryV3)
[/v2/chat/read](#operation/ChatAPI_ChatReadV2)
[/v1/chat/start](#operation/ChatAPI_ChatStart)
[/v1/chat/send/file](#operation/ChatAPI_ChatSendFile)
[/v1/chat/send/message](#operation/ChatAPI_ChatSendMessage) | Обновили описания методов. |\r\n| [/v1/posting/digital/codes/upload](#operation/UploadPostingCodes) | Добавили бета-метод для загрузки кодов цифровых товаров. |\r\n| [/v1/posting/digital/list](#operation/ListPostingCodes) | Добавили бета-метод для получения списка отправлений, по которым нужно загрузить коды цифровых товаров. |\r\n| [/v1/product/digital/stocks/import](#operation/DigitalProductAPI_StocksImport) | Добавили бета-метод для обновления количества цифровых товаров. |\r\n| /v1/product/upload_digital_codes
/v1/product/upload_digital_codes/info | Методы устарели, удалили их из документации. Используйте методы [/v1/posting/digital/list](#operation/ListPostingCodes), [/v1/posting/digital/codes/upload](#operation/UploadPostingCodes) и [/v1/product/digital/stocks/import](#operation/DigitalProductAPI_StocksImport). |\r\n| — | В разделе [**Порядок работы с методами → Загрузите и обновите товары**](#section/Zagruzite-i-obnovite-tovary) обновили описание работы с методами. |\r\n\r\n## 26 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v1/quant/list
/v1/quant/get
/v1/quant/ship
/v1/quant/status | Методы устарели, удалили их из документации. |\r\n| [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Удалили параметры `stocks.quant_size` из запроса и `result.quant_size` из ответа метода. |\r\n| — | В разделе [**Схема FBS Стандарт**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-Standart) обновили порядок работы с эконом-товарами. |\r\n\r\n## 25 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | В разделе [**Частые ошибки**](#tag/Errors) добавили описание ошибок `restore limit exceeded` и `total limit exceeded` для метода [/v1/product/unarchive](#operation/ProductAPI_ProductUnarchive). |\r\n\r\n## 23 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Обновили описание параметра `result.shipment_date` в ответе метода. |\r\n| [Частые ошибки](#tag/Errors) | Добавили описание ошибки `Stock is updated too frequently` и обновили описание ошибки `TOO_MANY_REQUESTS` для метода [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2). |\r\n| [v1/carriage/create](#operation/CarriageAPI_CarriageCreate) | Обновили описание метода. |\r\n\r\n## 20 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList) | Обновили описание метода. |\r\n| [/v1/draft/create](#operation/SupplyDraftAPI_DraftCreate) | Обновили описание параметров `cluster_ids` и `drop_off_point_warehouse_id` в запросе метода. | \r\n| [/v1/draft/supply/create](#operation/SupplyDraftAPI_DraftSupplyCreate) | Обновили описание параметра `warehouse_id` в запросе метода. |\r\n| [/v1/cargoes/rules/get](#operation/CargoesAPI_CargoesRulesGet)
[/v1/cargoes/delete](#operation/CargoesAPI_CargoesDelete)
[/v1/cargoes/delete/status](#operation/CargoesAPI_CargoesDeleteStatus)
[/v1/supply-order/content/update](#operation/SupplyOrderAPI_SupplyOrderContentUpdate)
[/v1/supply-order/content/update/status](#operation/SupplyOrderAPI_SupplyOrderContentUpdateStatus)
[/v1/returns/rfbs/action/set](#operation/ReturnsAPI_ReturnsRfbsActionSet) | Перенесли методы из бета-раздела в основной. |\r\n| — | В разделе [**Порядок работы с методами → Управляйте заявками на возврат rFBS-заказов**](#section/Upravlyajte-zayavkami-na-vozvrat-rFBS-zakazov) обновили описание работы с методами. |\r\n| [/v1/draft/create/info](#operation/SupplyDraftAPI_DraftCreateInfo) | Обновили описание параметра `operation_id` в запросе метода.
Удалили параметры `clusters.warehouses.warehouse_id`, `clusters.warehouses.address` и `clusters.warehouses.name` из ответа метода. |\r\n| [/v1/question/answer/list](#operation/QuestionAnswer_List)
[/v1/brand/company-certification/list](#operation/BrandAPI_BrandCompanyCertificationList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v1/report/list](#operation/ReportAPI_ReportList)
[/v1/supply-order/bundle](#operation/SupplyOrderBundle)
[/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList)
[/v1/description-category/attribute/values/search](#operation/DescriptionCategoryAPI_SearchAttributeValues)
[/v4/product/info/stocks](#operation/ProductAPI_GetProductInfoStocks)
[/v1/actions/discounts-task/list](#operation/promos_task_list)
[/v2/product/certification/list](#operation/ProductAPI_ProductCertificationList)
[/v1/product/certificate/list](#operation/CertificateList)
[/v1/product/certificate/products/list](#operation/CertificateProductsList)
[/v1/pass/list](#operation/PassList)
[/v2/returns/rfbs/list](#operation/RFBSReturnsAPI_ReturnsRfbsListV2)
[/v1/returns/company/fbs/info](#operation/returnsCompanyFBSInfo)
[/v1/return/giveout/list](#operation/ReturnAPI_GiveoutList)
[/v1/analytics/product-queries](#operation/AnalyticsAPI_AnalyticsProductQueries)
[/v1/analytics/product-queries/details](#operation/AnalyticsAPI_AnalyticsProductQueriesDetails)
[/v1/product/info/wrong-volume](#operation/ProductAPI_ProductInfoWrongVolume)
[/v1/product/quant/list](#operation/QuantProductList)
/v1/quant/list
[/v1/review/comment/list](#operation/ReviewAPI_CommentList)
[/v1/review/list](#operation/ReviewAPI_ReviewList)
[/v1/question/list](#operation/Question_List)
[/v2/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersListV2) | Обновили примеры запросов. |\r\n\r\n## 19 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/pricing-strategy/product/info](#operation/pricing_items-info) | Пометили устаревшим параметр `result.strategy_competitor_id` в ответе метода. |\r\n| [/v1/conditional-cancellation/get](#operation/CancellationAPI_GetConditionalCancellation) | Метод устаревает и будет отключён 3 августа 2025 года. Переключитесь на [/v2/conditional-cancellation/list](#operation/CancellationAPI_GetConditionalCancellationListV2). |\r\n| — | В разделе [**Управляйте заявками на отмену**](#section/Upravlyajte-zayavkami-na-otmenu) обновили метод для получения заявок на отмену rFBS. |\r\n\r\n## 18 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/analytics/average-delivery-time](#operation/AnalyticsAPI_AverageDeliveryTime) | Добавили параметры `data.metrics.exact_impact_share` и `total.exact_impact_share` в ответ метода.
Пометили устаревшими параметры `data.metrics.impact_share` и `total.impact_share`. |\r\n| [/v1/analytics/average-delivery-time/details](#operation/AnalyticsAPI_AverageDeliveryTimeDetails) | Добавили параметр `data.metrics.exact_impact_share` и пометили устаревшим параметр `data.metrics.impact_share` в ответе метода. |\r\n\r\n## 17 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/analytics/stocks](#operation/AnalyticsAPI_AnalyticsStocks) | Добавили параметры `items.ads_cluster`, `items.days_without_sales_cluster`, `items.idc_cluster` и `items.turnover_grade_cluster` в ответ метода.
Обновили описание параметров `items.ads`, `items.days_without_sales`, `items.idc` и `items.turnover_grade` в ответе метода. |\r\n\r\n## 16 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v1/quant/list
/v1/quant/get
/v1/quant/ship
/v1/quant/status | \tМетоды устаревают и будут отключены 26 июня 2025 года. |\r\n| [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Пометили устаревшими параметры `stocks.quant_size` в запросе метода и `result.quant_size` в ответе метода. 26 июня 2025 они будут отключены. |\r\n\r\n## 11 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v4/product/info/stocks](#operation/ProductAPI_GetProductInfoStocks) | Добавили параметр `items.stocks.warehouse_ids` в ответ метода. |\r\n\r\n## 5 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)
[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList) | Добавили параметры `with.legal_info` в запрос метода и `result.legal_info` в ответ метода. |\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Добавили параметры `with.legal_info` в запрос метода и `result.postings.legal_info` в ответ метода. | |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметры `with.legal_info` в запрос метода и `result.legal_info` в ответ метода. |\r\n| [Частые ошибки](#tag/Errors) | Добавили описание ошибки `You have reached request rate limit per second` для всех методов. |\r\n| [/v1/cargoes/create](#operation/CargoesAPI_CargoesCreate) | Обновили описание параметра `supply_id` в запросе метода. |\r\n| [/v2/posting/fbs/act/get-postings](#operation/PostingAPI_ActPostingList) | Обновили описание параметра `id` в запросе метода. |\r\n| [/v1/finance/realization/posting](#operation/FinanceAPI_GetRealizationReportV1) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 3 июня 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/conditional-cancellation/list](#operation/CancellationAPI_GetConditionalCancellationListV2)
[/v2/conditional-cancellation/approve](#operation/CancellationAPI_ConditionalCancellationApproveV2)
[/v2/conditional-cancellation/reject](#operation/CancellationAPI_ConditionalCancellationRejectV2) | Перенесли методы из бета-раздела в основной. |\r\n| [/v1/conditional-cancellation/list](#operation/CancellationAPI_GetConditionalCancellationList) | Метод устаревает и будет отключён 3 августа 2025 года. Переключитесь на новую версию [/v2/conditional-cancellation/list](#operation/CancellationAPI_GetConditionalCancellationListV2). |\r\n| [/v1/conditional-cancellation/approve](#operation/CancellationAPI_ConditionalCancellationApprove) | Метод устаревает и будет отключён 3 августа 2025 года. Переключитесь на новую версию [/v2/conditional-cancellation/approve](#operation/CancellationAPI_ConditionalCancellationApproveV2). |\r\n| [/v1/conditional-cancellation/reject](#operation/CancellationAPI_ConditionalCancellationReject) | Метод устаревает и будет отключён 3 августа 2025 года. Переключитесь на новую версию [/v2/conditional-cancellation/reject](#operation/CancellationAPI_ConditionalCancellationRejectV2). |\r\n| [Частые ошибки](#tag/Errors) | Обновили описание ошибки `INVALID_ARGUMENT` для метода [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel). |\r\n\r\n## 30 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|\r\n| [/v1/finance/document-b2b-sales/json](#operation/ReportAPI_CreateDocumentB2BSalesJSONReport) | Добавили бета-метод для получения отчёта по продажам юридическим лицам в JSON-формате. |\r\n| [/v4/product/info/attributes](#operation/ProductAPI_GetProductAttributesV4) | Добавили параметр `result.attributes_with_defaults` в ответ метода. |\r\n\r\n## 27 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------|-----------------------------------------------------------------------------------------------------------------------|\r\n| /v1/product/import/stocks | Метод устарел, удалили его из документации. Используйте [/v2/products/stock](#operation/ProductAPI_ProductsStocksV2). |\r\n\r\n## 26 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/analytics/stocks](#operation/AnalyticsAPI_AnalyticsStocks) | Обновили описание параметра `turnover_grades` в запросе метода.
Обновили описание параметров `items.turnover_grades` и `items.valid_stock_count` в ответе метода. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Пометили обязательным параметр `items.type_id` в запросе метода. |\r\n\r\n## 23 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|\r\n| [/v5/product/info/prices](#operation/ProductAPI_GetProductInfoPrices) | Добавили параметр `items.price.net_price` в ответ метода. |\r\n| [/v2/product/pictures/info](#operation/ProductAPI_ProductInfoPicturesV2) | Добавили параметр `items.errors` в ответ метода. |\r\n\r\n## 22 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/analytics/average-delivery-time](#operation/AnalyticsAPI_AverageDeliveryTime) | Добавили бета-метод для получения аналитики по среднему времени доставки. |\r\n| [/v1/analytics/average-delivery-time/details](#operation/AnalyticsAPI_AverageDeliveryTimeDetails) | Добавили бета-метод для получения детальной аналитики по среднему времени доставки по кластеру. |\r\n| — | В разделе [**Порядок работы с методами**](#tag/Process) увеличили лимит запросов — теперь вы можете отправить не больше 50 запросов в секунду на все методы с одного Client ID. Раньше — не больше 10. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Добавили параметр `items.promotions` в запрос метода. |\r\n\r\n## 20 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|\r\n| [/v1/supply-order/bundle](#operation/SupplyOrderBundle) | Добавили параметр `items.placement_zone` в ответ метода. |\r\n| [/v1/cargoes/rules/get](#operation/CargoesAPI_CargoesRulesGet) | Добавили бета-метод для получения чек-листа с правилами по установке грузомест. |\r\n| [/v1/cargoes/delete](#operation/CargoesAPI_CargoesDelete)
[/v1/cargoes/delete/status](#operation/CargoesAPI_CargoesDeleteStatus) | Добавили бета-методы для удаления грузомест в заявке на поставку. |\r\n| [/v1/supply-order/content/update](#operation/SupplyOrderAPI_SupplyOrderContentUpdate)
[/v1/supply-order/content/update/status](#operation/SupplyOrderAPI_SupplyOrderContentUpdateStatus) | Добавили бета-методы для редактирования товарного состава в заявке на поставку. |\r\n\r\n## 15 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/actions/candidates](#operation/PromosCandidates)
[/v1/actions/products](#operation/PromosProducts) | Добавили параметры `result.products.alert_max_action_price_failed` и `result.products.alert_max_action_price` в ответ методов. |\r\n\r\n## 13 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/chat/history](#operation/ChatAPI_ChatHistoryV3) | Перенесли метод из бета-раздела в основной. |\r\n| [/v2/chat/history](#operation/ChatAPI_ChatHistoryV2) | Метод устаревает и будет отключён 13 июля 2025 года. Переключитесь на новую версию [/v3/chat/history](#operation/ChatAPI_ChatHistoryV3). |\r\n| — | В разделе [**Порядок работы с методами → Управляйте чатами**](#section/Upravlyajte-chatami) указали новый метод для получения истории чата. |\r\n| [/v1/returns/rfbs/action/set](#operation/ReturnsAPI_ReturnsRfbsActionSet) | Добавили бета-метод для передачи действий для возврата rFBS. |\r\n| [/v2/returns/rfbs/reject](#operation/RFBSReturnsAPI_ReturnsRfbsRejectV2)
[/v2/returns/rfbs/compensate](#operation/RFBSReturnsAPI_ReturnsRfbsCompensateV2)
[/v2/returns/rfbs/verify](#operation/RFBSReturnsAPI_ReturnsRfbsVerifyV2)
[/v2/returns/rfbs/receive-return](#operation/RFBSReturnsAPI_ReturnsRfbsReceiveReturnV2)
[/v2/returns/rfbs/return-money](#operation/RFBSReturnsAPI_ReturnsRfbsReturnMoneyV2) | Методы будут отключены в будущем. Переключитесь на метод [/v1/returns/rfbs/action/set](#operation/ReturnsAPI_ReturnsRfbsActionSet). |\r\n\r\n## 6 мая 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|\r\n| /v1/product/import/stocks | Метод будет отключён 27 мая 2025 года. Переключитесь на [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2). |\r\n\r\n## 30 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------------------------------|\r\n| [/v2/conditional-cancellation/approve](#operation/CancellationAPI_ConditionalCancellationApproveV2) | Добавили бета-метод для подтверждения заявки на отмену rFBS-заказов. |\r\n| [/v2/conditional-cancellation/list](#operation/CancellationAPI_GetConditionalCancellationListV2) | Добавили бета-метод для получения списка заявок на отмену rFBS-заказов. |\r\n| [/v2/conditional-cancellation/reject](#operation/CancellationAPI_ConditionalCancellationRejectV2) | Добавили бета-метод для отклонения заявки на отмену rFBS-заказов. |\r\n\r\n## 28 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Удалили параметры `items.image_group_id` и `items.premium_price` из запроса метода. |\r\n| [/v1/product/import/info](#operation/ProductAPI_GetImportProductsInfo) | Удалили параметр `result.items.errors.optional_description_elements` из ответа метода. |\r\n| [/v1/product/import-by-sku](#operation/ProductAPI_ImportProductsBySKU) | Удалили параметр `items.premium_price` из запроса метода. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Удалили параметры `result.postings.financial_data.products.client_price`, `result.postings.financial_data.products.picking` и `result.postings.products.mandatory_mark` из ответа методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)
[/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode) | Удалили параметры `result.financial_data.products.client_price`, `result.financial_data.products.picking` и `result.products.mandatory_mark` из ответа методов. |\r\n| [/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)
[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList) | Удалили параметры `result.analytics_data.region`, `result.financial_data.products.client_price` и `result.financial_data.products.picking` из ответа методов. |\r\n| [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2) | Удалили параметр `orders.creation_flow` из ответа метода. |\r\n| [/v2/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehousesV2) | Удалили параметр `result.rows.idc` из ответа метода. |\r\n| /v1/finance/realization | Метод устарел, удалили его из документации. Используйте [/v2/finance/realization](#operation/FinanceAPI_GetRealizationReportV2). |\r\n\r\n## 23 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------|----------------------------------------------------------------------|\r\n| [/v1/finance/compensation](#operation/ReportAPI_GetCompensationReport) | Добавили бета-метод для получения отчёта о компенсациях. |\r\n| [/v1/finance/decompensation](#operation/ReportAPI_GetDecompensationReport) | Добавили бета-метод для получения отчёта о декомпенсациях. |\r\n| [/v1/report/info](#operation/ReportAPI_ReportInfo) | Обновили описание параметра `report_type` в ответе метода. |\r\n| [/v1/report/list](#operation/ReportAPI_ReportList) | Обновили описание параметра `report_type` в ответе и запросе метода. |\r\n\r\n## 17 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------|\r\n| [/v1/finance/realization/posting](#operation/FinanceAPI_GetRealizationReportV1) | Добавили бета-метод для получения позаказного отчёта о реализации товаров. |\r\n\r\n## 16 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------|--------------------------------------------------------------------|\r\n| [/v1/analytics/manage/stocks](#operation/AnalyticsAPI_ManageStocks) | Обновили описание параметра `filter.stock_types` в запросе метода. |\r\n\r\n## 11 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)
[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)
[/v2/posting/fbs/get-by-barcode](#operation/PostingAPI_GetFbsPostingByBarcode) | Удалили устаревшие параметры `result.financial_data.posting_services` и `result.financial_data.products.item_services` из ответа методов. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Удалили устаревшие параметры `result.postings.financial_data.posting_services` и `result.postings.financial_data.products.item_services` из ответа методов. |\r\n\r\n## 10 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------|------------------------------------------------------------------------|\r\n| [/v1/finance/realization/by-day](#operation/FinanceAPI_GetRealizationByDayReportV1) | Добавили бета-метод для получения отчёта о реализации товаров за день. |\r\n\r\n## 9 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|\r\n| [/v1/analytics/stocks](#operation/AnalyticsAPI_AnalyticsStocks) | Добавили метод для получения аналитики по остаткам на складах. |\r\n\r\n## 4 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------|\r\n| [/v5/product/info/prices](#operation/ProductAPI_GetProductInfoPrices) | Добавили параметр `items.price.auto_add_to_ozon_actions_list_enabled` в ответ метода. |\r\n\r\n## 3 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Добавили параметр `prices.auto_add_to_ozon_actions_list_enabled` в запрос метода. Обновили описание параметра `prices.auto_action_enabled` в запросе метода. |\r\n\r\n## 1 апреля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------|-----------------------------------------------------------------------------|\r\n| [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList) | Удалили параметр `clusters.logistic_clusters.is_archived` из ответа метода. |\r\n\r\n## 31 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|\r\n| [/v1/carriage/create](#operation/CarriageAPI_CarriageCreate)
[/v1/carriage/approve](#operation/CarriageAPI_CarriageApprove)
[/v1/carriage/delivery/list](#operation/CarriageAPI_CarriageDeliveryList) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 27 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `is_blr_traceable` в ответы методов. |\r\n| [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2) | Добавили параметры `is_traceable` и `is_ettn_required` в ответ метода. |\r\n| [/v1/supply-order/bundle](#operation/SupplyOrderBundle) | Добавили параметр `item_tags_calculation` в запрос метода и параметр `tags` в ответ метода. |\r\n\r\n## 26 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|\r\n| [/v1/product/info/wrong-volume](#operation/ProductAPI_ProductInfoWrongVolume) | Добавили бета-метод для получения списка товаров с некорректными объёмно-весовыми характеристиками. |\r\n\r\n## 20 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------|---------------------------------------------------|\r\n| [/v1/rating/summary](#operation/RatingAPI_RatingSummaryV1) | Добавили параметр `premium_plus` в ответ метода. |\r\n| [/v1/analytics/product-queries/details](#operation/AnalyticsAPI_AnalyticsProductQueriesDetails) | Обновили описание параметров `limit_by_sku`, `page` и `page_size` в запросе метода. |\r\n\r\n## 19 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/product/import/info](#operation/ProductAPI_GetImportProductsInfo) | Обновили описание метода.
Добавили возможное значение `skipped` параметра `result.items.status` в ответе метода. |\r\n| [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) | Добавили параметр `result.complex_is_collection` в ответ метода. |\r\n\r\n## 18 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------|------------------------------------------------|\r\n| [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList)
[/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
[/v1/draft/create](#operation/SupplyDraftAPI_DraftCreate)
[/v1/draft/create/info](#operation/SupplyDraftAPI_DraftCreateInfo)
[/v1/draft/timeslot/info](#operation/SupplyDraftAPI_DraftTimeslotInfo)
[/v1/draft/supply/create](#operation/SupplyDraftAPI_DraftSupplyCreate)
[/v1/draft/supply/create/status](#operation/SupplyDraftAPI_DraftSupplyCreateStatus)
[/v1/cargoes/create](#operation/CargoesAPI_CargoesCreate)
[/v1/cargoes/create/info](#operation/CargoesAPI_CargoesCreateInfo)
[/v1/cargoes-label/create](#operation/CargoesAPI_CargoesLabelCreate)
[/v1/cargoes-label/get](#operation/CargoesAPI_CargoesLabelGet)
[/v1/cargoes-label/file/{file_guid}](#operation/CargoesAPI_CargoesLabelFile)
[/v1/supply-order/cancel](#operation/SupplyOrderAPI_SupplyOrderCancel)
[/v1/supply-order/cancel/status](#operation/SupplyOrderAPI_SupplyOrderCancelStatus)
[/v6/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSetV6)
[/v6/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGetV6)
[/v5/fbs/posting/product/exemplar/status](#operation/PostingAPI_FbsPostingProductExemplarStatusV5)
[/v5/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidateV5)
[/v1/fbs/posting/product/exemplar/update](#operation/PostingAPI_FbsPostingProductExemplarUpdate) | Перенесли методы из бета-раздела в основной. |\r\n\r\n## 14 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------|---------------------------------------------------------------------|\r\n| [/v1/analytics/product-queries/details](#operation/AnalyticsAPI_AnalyticsProductQueriesDetails) | Добавили метод для получения данных по запросам конкретного товара. |\r\n\r\n## 13 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------|------------------------------------------------------------------------------------------------------|\r\n| [/v1/actions/candidates](#operation/PromosCandidates)
[/v1/actions/products](#operation/PromosProducts) | Пометили параметр `offset` в запросе методов как устаревший и добавили параметр пагинации `last_id`. |\r\n\r\n## 11 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------|----------------------------------------------------------|\r\n| [/v3/chat/history](#operation/ChatAPI_ChatHistoryV3) | Добавили новую версию метода для просмотра истории чата. |\r\n| /v1/actions/hotsales/activate
/v1/actions/hotsales/deactivate
/v1/actions/hotsales/list
/v1/actions/hotsales/products | Методы устарели, удалили их из документации. |\r\n\r\n## 10 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------|---------------------------------------------------------------------------------------|\r\n| /v2/product/info | Метод устарел, удалили его из документации. Используйте [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList). |\r\n\r\n## 5 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/report/returns/create](#operation/ReportAPI_ReportReturnsCreate) | Добавили параметр `result` в ответ метода.
Пометили обязательными параметры `filter.date_from`, `filter.date_to` и `filter.status` в запросе метода. |\r\n\r\n## 3 марта 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | В ответе метода:
• добавили параметр `result.optional.products_with_possible_mandatory_mark`,
• пометили устаревшим параметр `result.products.mandatory_mark`. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | В ответе методов:
• добавили параметр `result.postings.optional.products_with_possible_mandatory_mark`,
• пометили устаревшим параметр `result.postings.products.mandatory_mark`. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Значения кодов маркировки можно получить через метод [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) c `with.product_exemplars: true` в запросе или метод [/v6/fbs/posting/product/exemplar/create-or-get](/#operation/PostingAPI_FbsPostingProductExemplarCreateOrGetV6). |\r\n\r\n## 28 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v4/product/info/attributes](#operation/ProductAPI_GetProductAttributesV4) | Добавили возможные значения параметра `sort_by` в запросе метода и добавили описания параметров `result.barcodes` и `result.sku` в ответ метода. |\r\n| [v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2) | Пометили параметр `creation_flow` как устаревший. |\r\n\r\n## 27 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|\r\n| [/v2/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehousesV2) | Обновили описание метода и отметили параметр `result.rows.idc` как устаревший, удалили его из примера. |\r\n| [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList)
[/v1/actions](#operation/Promos) | Обновили описание метода. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.previous_substatus` в ответ метода. |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Обновили описание параметра `result.operations.posting.delivery_schema` в ответе метода. |\r\n| [/v1/analytics/product-queries](#operation/AnalyticsAPI_AnalyticsProductQueries) | Добавили бета-метод для получения данных о запросах ваших товаров. |\r\n\r\n## 26 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------|-----------------|\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Обновили описание параметра `result.postings.analytics_data.city` в ответе методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)
[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)
[/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting) | Обновили описание параметра `result.analytics_data.city` в ответе методов.|\r\n\r\n## 24 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|--------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Добавили параметр `prices.net_price` в запрос метода для указания себестоимости товара. |\r\n\r\n## 18 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v5/product/info/prices](#operation/ProductAPI_GetProductInfoPrices) | Перенесли метод из бета-раздела в основной. |\r\n| /v4/product/info/prices | Метод устарел, удалили его из документации. |\r\n| /v3/returns/company/fbo
/v3/returns/company/fbs | Методы устарели, удалили их из документации. Переключитесь на новую версию [/v1/returns/list](#operation/returnsList). |\r\n| /v1/report/returns/create | Метод устарел, удалили его из документации. Переключитесь на новую версию [/v2/report/returns/create](#operation/ReportAPI_ReportReturnsCreate). |\r\n\r\n## 17 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v2/product/info/list | Метод устарел, удалили его из документации. Переключитесь на новую версию [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList). |\r\n| [/v6/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSetV6 )
[/v6/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGetV6)
[/v5/fbs/posting/product/exemplar/status](#operation/PostingAPI_FbsPostingProductExemplarStatusV5)
[/v5/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidateV5)
[/v1/fbs/posting/product/exemplar/update](#operation/PostingAPI_FbsPostingProductExemplarUpdate) | Добавили бета-методы для управления кодами маркировки. |\r\n\r\n## 14 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2) | Добавили параметры `orders.can_cancel`, `orders.is_econom`, `orders.is_virtual`, `orders.is_super_fbo`, `orders.product_super_fbo`, `orders.supplies.supply_state`, `orders.supplies.supply_tags.is_evsd_required`, `orders.supplies.supply_tags.is_jewelry`, `orders.supplies.supply_tags.is_marking_possible`, `orders.supplies.supply_tags.is_marking_required` в ответ метода. |\r\n| [/v2/product/certification/list](#operation/ProductAPI_ProductCertificationList) | Перенесли метод из бета-раздела в основной. |\r\n| [/v1/product/certification/list](#operation/ProductAPI_V1ProductCertificationList) | Метод устаревает и будет отключён 14 апреля 2025 года. Переключитесь на новую версию [/v2/product/certification/list](#operation/ProductAPI_ProductCertificationList). |\r\n\r\n## 11 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------|----------------------------------------------|\r\n| [/v3/product/list](#operation/ProductAPI_GetProductList) | Перенесли метод из бета-раздела в основной. |\r\n| /v2/product/list | Метод устарел, удалили его из документации. |\r\n\r\n## 10 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------|---------------------------------------------|\r\n| [/v4/product/info/stocks](#operation/ProductAPI_GetProductInfoStocks) | Перенесли метод из бета-раздела в основной. |\r\n| /v3/product/info/stocks | Метод устарел, удалили его из документации. |\r\n| /v1/product/pictures/info | Метод устарел, удалили его из документации. Переключитесь на новую версию [/v2/product/pictures/info](#operation/ProductAPI_ProductInfoPicturesV2). | \r\n| /v3/product/info/attributes | Метод устарел, удалили его из документации. Переключитесь на новую версию [/v4/product/info/attributes](#operation/ProductAPI_GetProductAttributesV4). |\r\n\r\n## 6 февраля 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|\r\n| [/v2/posting/fbs/awaiting-delivery](#operation/PostingAPI_MoveFbsPostingToAwaitingDelivery) | Обновили описание параметра `posting_number` в запросе метода. |\r\n| [/v4/product/info/attributes](#operation/ProductAPI_GetProductAttributesV4)
[/v1/finance/document-b2b-sales](#operation/ReportAPI_CreateDocumentB2BSalesReport)
[/v1/finance/mutual-settlement](#operation/ReportAPI_CreateMutualSettlementReport) | Перенесли методы из бета-раздела в основной. |\r\n\r\n## 30 января 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------|----------------------------------------------------------------------|\r\n| [/v1/supply-order/cancel](#operation/SupplyOrderAPI_SupplyOrderCancel) | Добавили бета-метод для отмены заявки на поставку. |\r\n| [/v1/supply-order/cancel/status](#operation/SupplyOrderAPI_SupplyOrderCancelStatus) | Добавили бета-метод для получения статуса отмены заявки на поставку. |\r\n\r\n## 22 января 2025\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------|---------------------------------------------|\r\n| [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 17 января 2025\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|\r\n| [/v1/posting/fbs/pick-up-code/verify](#operation/PostingAPI_PostingFBSPickupCodeVerify) | Добавили метод для проверки кода курьера. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Добавили параметр `result.postings.pickup_code_verified_at` в ответы методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.pickup_code_verified_at` в ответ метода. |\r\n\r\n## 15 января 2025\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------|--------------------------------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Добавили параметр `prices.min_price_for_auto_actions_enabled` в запрос метода. |\r\n| [/v1/product/action/timer/update](#operation/ProductAPI_ActionTimerUpdate) | Добавили бета-метод для обновления таймера актуальности минимальной цены. |\r\n| [/v1/product/action/timer/status](#operation/ProductAPI_ActionTimerStatus) | Добавили бета-метод для получения статуса установленного таймера. | \r\n\r\n## 14 января 2025\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------|------------------------------------------------------------------------------------|\r\n| [/v1/returns/list](#operation/returnsList) | Обновили описание параметров `filter` и `filter.posting_numbers` в запросе метода. |\r\n| [/v2/product/pictures/info](#operation/ProductAPI_ProductInfoPicturesV2) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 13 января 2025\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\r\n| /v2/posting/fbs/digital/act/document-sign | Метод устарел, удалили его из документации. |\r\n\r\n## 28 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/supply-order/bundle](#operation/SupplyOrderBundle) | Добавили описание метода, изменили описания параметров `bundle_ids`, `last_id` и `limit` в запросе метода. |\r\n| [/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList) | Изменили название и описание метода, изменили описание параметра `search` в запросе метода. |\r\n| [/v1/draft/create/info](#operation/SupplyDraftAPI_DraftCreateInfo) | Обновили описание параметров `clusters.warehouses.bundle_ids.bundle_id` и `clusters.warehouses.restricted_bundle_id` в ответе метода. |\r\n| [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList) | Обновили описание параметра `cluster_type` в запросе метода. |\r\n| [/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList) | Обновили описание параметра `filter_by_supply_type` в запросе метода. |\r\n| [/v1/question/answer/create](#operation/QuestionAnswer_Create)
[/v1/question/answer/delete](#operation/QuestionAnswer_Delete)
[/v1/question/answer/list](#operation/QuestionAnswer_List)
[/v1/question/change-status](#operation/Question_ChangeStatus)
[/v1/question/count](#operation/Question_Count)
[/v1/question/info](#operation/Question_Info)
[/v1/question/list](#operation/Question_List)
[/v1/question/top-sku](#operation/Question_TopSku) | Добавили бета-методы для работы с вопросами и ответами. |\r\n\r\n## 27 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\r\n| [/v1/review/comment/create](#operation/ReviewAPI_CommentCreate)
[/v1/review/comment/delete](#operation/ReviewAPI_CommentDelete)
[/v1/review/comment/list](#operation/ReviewAPI_CommentList)
[/v1/review/change-status](#operation/ReviewAPI_ReviewChangeStatus)
[/v1/review/count](#operation/ReviewAPI_ReviewCount)
[/v1/review/info](#operation/ReviewAPI_ReviewInfo)
[/v1/review/list](#operation/ReviewAPI_ReviewList) | Добавили бета-методы для работы с отзывами. |\r\n| [/v1/carriage/create](#operation/CarriageAPI_CarriageCreate) | Добавили бета-метод для создания отгрузки. |\r\n| [/v1/carriage/approve](#operation/CarriageAPI_CarriageApprove) | Добавили бета-метод для подтверждения отгрузки. |\r\n| [/v1/carriage/delivery/list](#operation/CarriageAPI_CarriageDeliveryList) | Добавили бета-метод для получения списка методов доставки и отгрузок. |\r\n| [/v1/carriage/get](#operation/CarriageGet) | Добавили параметры `result.is_waybill_enabled` и `result.is_econom` в ответ метода. |\r\n\r\n## 26 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------|-----------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList) | Добавили параметр `result.sla_cut_in` в ответ метода. |\r\n| /v1/supply-order/get | Метод устарел, удалили его из документации. Используйте [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2). |\r\n| /v1/supply-order/list | Метод устарел, удалили его из документации. Используйте [/v2/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersListV2). |\r\n| /v1/supply-order/items | Метод устарел, удалили его из документации. Используйте [/v1/supply-order/bundle](#operation/SupplyOrderBundle). |\r\n| /v4/product/info/prices | Метод устаревает и будет отключён 17 февраля 2025 года. Переключитесь на новую версию [/v5/product/info/prices](#operation/ProductAPI_GetProductInfoPrices). |\r\n| [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList) | Добавили параметр `items.is_super` в ответ метода. |\r\n\r\n## 24 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Добавили параметр `prices.vat` в запрос метода. |\r\n| [/v1/product/import-by-sku](#operation/ProductAPI_ImportProductsBySKU)
[/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Обновили описание параметра `items.vat` в запросе методов. |\r\n\r\n## 20 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/report/returns/create](#operation/ReportAPI_ReportReturnsCreate)
[/v1/posting/unpaid-legal/product/list](#operation/PostingAPI_UnpaidLegalProductList) | Перенесли методы из бета-раздела в основной. |\r\n| /v1/report/returns/create | Метод устаревает и будет отключён 15 февраля 2025 года. Переключитесь на новую версию [/v2/report/returns/create](#operation/ReportAPI_ReportReturnsCreate). |\r\n| /v3/returns/company/fbo
/v3/returns/company/fbs | Обновили дату отключения методов. |\r\n\r\n## 19 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------|----------------------------------------------------|\r\n| [/v1/carriage/set-postings](#operation/CarriageAPI_SetPostings) | Добавили бета-метод для изменения состава отгрузки.|\r\n| [/v1/carriage/cancel](#operation/CarriageAPI_CarriageCancel) | Добавили бета-метод для удаления отгрузки. |\r\n\r\n## 17 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList) | Добавили бета-метод для получения списка товаров по идентификаторам. |\r\n| /v2/product/info
/v2/product/info/list | Методы устаревают и будут отключены 17 февраля 2025 года. Переключитесь на новую версию [/v3/product/info/list](#operation/ProductAPI_GetProductInfoList). |\r\n| [/v2/posting/fbs/act/list](#operation/PostingAPI_FbsActList) | Пометили обязательными параметры `filter.date_from` и `filter.date_to` в запросе метода. |\r\n\r\n## 12 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/cargoes/create](#operation/CargoesAPI_CargoesCreate)
[/v1/cargoes/create/info](#operation/CargoesAPI_CargoesCreateInfo)
[/v1/cargoes-label/create](#operation/CargoesAPI_CargoesLabelCreate)
[/v1/cargoes-label/get](#operation/CargoesAPI_CargoesLabelGet)
[/v1/cargoes-label/file/{file_guid}](#operation/CargoesAPI_CargoesLabelFile) | Добавили бета-методы для работы с грузоместами. |\r\n| — | В разделе [**Порядок работы с методами → Управляйте заказами FBO, FBS и rFBS → Схема FBO**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBO) добавили информацию об управлении грузоместами в заявке на поставку. |\r\n\r\n\r\n## 11 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/product/pictures/info](#operation/ProductAPI_ProductInfoPicturesV2) | Добавили бета-метод для получения изображений товаров. |\r\n| /v1/product/pictures/info | Метод устаревает и будет отключён 11 февраля 2025 года. Переключитесь на новую версию [/v2/product/pictures/info](#operation/ProductAPI_ProductInfoPicturesV2). |\r\n\r\n## 9 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/returns/company/fbs/info](#operation/returnsCompanyFBSInfo) | В ответе метода:
• Добавили параметры `drop_off_points.box_count` и `drop_off_points.utc_offset`.
• Удалили параметр `company_id`. |\r\n| /v2/product/list | Удалили статус `BANNED` из запроса метода, при его использовании будет применено поле по умолчанию. Метод устаревает и будет отключён 9 февраля 2025 года. Переключитесь на новую версию [/v3/product/list](#operation/ProductAPI_GetProductList). |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Дополнили описание метода: используйте метод с последовательной отправкой запросов. Обновили описание параметров `result.page_count` и `result.row_count` в ответе метода. |\r\n| /v3/product/info/attributes | Метод устаревает и будет отключён 9 февраля 2025 года. Переключитесь на новую версию [/v4/product/info/attributes](#operation/ProductAPI_GetProductAttributesV4). |\r\n| [/v1/returns/list](#operation/returnsList) | Добавили параметр `returns.product.quantity` в ответ метода. |\r\n\r\n## 6 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/product/certification/list](#operation/ProductAPI_ProductCertificationList) | Добавили бета-метод для получения списка сертифицируемых категорий. |\r\n\r\n## 4 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v4/product/info/stocks](#operation/ProductAPI_GetProductInfoStocks) | Добавили бета-метод для получения информации о количестве товара. | \r\n| [/v3/product/info/stocks](#operation/ProductAPI_GetProductInfoStocksV3) | Метод устаревает и будет отключён 31 января 2025 года. Переключитесь на новую версию [/v4/product/info/stocks](#operation/ProductAPI_GetProductInfoStocks). |\r\n\r\n## 3 декабря 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/finance/realization](#operation/FinanceAPI_GetRealizationReportV2) | Добавили параметры `result.rows.return_commission.bank_coinvestment`, `result.rows.delivery_commission.pick_up_point_coinvestment` и `result.rows.return_commission.pick_up_point_coinvestment` в ответ метода. |\r\n\r\n## 29 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Обновили описание параметров `result.postings.analytics_data.city` и `result.postings.analytics_data.region` в ответе методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Обновили описание параметров `result.analytics_data.city` и `result.analytics_data.region` в ответе метода. |\r\n| [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)
[/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting) | Параметры `result.analytics_data.city` и `result.analytics_data.region` в ответе методов устаревают и будут всегда возвращать пустое значение. |\r\n\r\n## 26 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|---------------------------------------------|\r\n| [/v1/analytics/turnover/stocks](#operation/AnalyticsAPI_StocksTurnover) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 22 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------|-----------------------------------------------------------------|\r\n| [/v2/report/returns/create](#operation/ReportAPI_ReportReturnsCreate) | Добавили бета-метод для получения отчёта о возвратах FBO и FBS. |\r\n| [/v1/report/info](#operation/ReportAPI_ReportInfo) | Добавили статус `SELLER_RETURNS_V2` в параметр `report_type`. |\r\n| [/v1/posting/fbs/split](#operation/FbsSplit) | Перенесли метод из бета-раздела в основной. |\r\n\r\n## 20 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|\r\n| [/v1/posting/unpaid-legal/product/list](#operation/PostingAPI_UnpaidLegalProductList) | Добавили бета-метод для получения списка неоплаченных товаров, заказанных юридическими лицами. |\r\n\r\n## 19 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|\r\n| [/v1/product/import-by-sku](#operation/ProductAPI_ImportProductsBySKU) | Обновили название и описание метода, обновили описание параметра `items` в запросе метода. |\r\n\r\n## 18 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------|----------------------------------------------------------|\r\n| [/v1/analytics/manage/stocks](#operation/AnalyticsAPI_ManageStocks) | Добавили бета-метод для управления остатками на складах. |\r\n\r\n## 14 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|--------------------------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Обновили описание метода и описание параметра `prices` в запросе метода. |\r\n\r\n## 13 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.postings.tariffication` в ответы методов. |\r\n| [/v1/posting/carriage-available/list](#operation/PostingAPI_GetCarriageAvailableList) | Добавили параметры `result.recommended_time_local` и `result.recommended_time_utc_offset_in_minutes` в ответ метода. |\r\n\r\n## 7 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/report/list](#operation/ReportAPI_ReportList)| Добавили статусы `DOCUMENT_B2B_SALES` и `MUTUAL_SETTLEMENT` в параметр запроса `report_type`. |\r\n| [/v1/report/info](#operation/ReportAPI_ReportInfo)| Добавили статусы `DOCUMENT_B2B_SALES` и `MUTUAL_SETTLEMENT` в параметр ответа `result.reports.report_type`. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3)
[/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2)
[/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct) | Обновили описания методов. |\r\n| [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList) | В описании параметра `result.details.services.items.name` изменили название операции `MarketplaceServiceItemPremiumSubscribtion` на `MarketplaceServiceItemSubscribtionPremium`. |\r\n| — | В разделе [**Порядок работы с методами**](#tag/Process) добавили информацию об ограничении отправки запросов. |\r\n\r\n## 6 ноября 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList) | Добавили бета-метод для получения информации о кластерах. |\r\n| [/v1/draft/create](#operation/SupplyDraftAPI_DraftCreate) | Добавили бета-метод для создания черновика заявки на поставку. |\r\n| [/v1/draft/create/info](#operation/SupplyDraftAPI_DraftCreateInfo) | Добавили бета-метод для получения информации о черновике заявки на поставку. |\r\n| [/v1/draft/timeslot/info](#operation/SupplyDraftAPI_DraftTimeslotInfo) | Добавили бета-метод для получения доступных таймслотов для черновика заявки на поставку. |\r\n| [/v1/draft/supply/create](#operation/SupplyDraftAPI_DraftSupplyCreate) | Добавили бета-метод для создания заявки на поставку по черновику. |\r\n| [/v1/supply/create/status](#operation/SupplyDraftAPI_DraftSupplyCreateStatus) | Добавили бета-метод для получения информации о создании заявки на поставку. |\r\n| [/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList) | Добавили бета-метод для получения информации о складах для отгрузки. |\r\n| [/v1/finance/mutual-settlement](#operation/ReportAPI_CreateMutualSettlementReport) | Добавили бета-метод для получения отчёта о взаиморасчётах. |\r\n| [/v1/finance/document-b2b-sales](#operation/ReportAPI_CreateDocumentB2BSalesReport) | Добавили бета-метод для получения отчёта о продажах юридическим лицам. |\r\n| — | В разделе [**Порядок работы с методами → Управляйте заказами FBO, FBS и rFBS → Схема FBO → Создать заявку на поставку**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBO) добавили информацию о создании заявки на поставку по схеме FBO. |\r\n| /v1/quant/list | Добавили бета-метод для получения списка квантов. | \r\n| /v1/quant/get | Добавили бета-метод для получения информации о кванте и его отправлениях. | \r\n| /v1/quant/ship | Добавили бета-метод для сборки отправлений кванта. | \r\n| /v1/quant/status | Добавили бета-метод для получения статуса кванта. | \r\n| [/v1/product/quant/info](#operation/QuantGetInfo) | Добавили бета-метод для получения информации об эконом-товаре. |\r\n| [/v1/product/quant/list](#operation/QuantProductList) | Добавили бета-метод для получения списка эконом-товаров. |\r\n| [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList) | Добавили параметр `result.is_economy` в ответ метода. | \r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Добавили параметры `filter.is_quantum` в запрос и `result.postings.quantum_id` в ответ методов. | \r\n| /v2/product/list | Добавили описание метода.
У параметра `filter.visibility` в запросе метода удалили возможные значения `IMAGE_ABSENT` и `MODERATION_BLOCK`. | \r\n| — | В разделе [**Порядок работы с методами → Управляйте заказами FBO, FBS и rFBS → Схема FBS Стандарт → Работа с эконом-товарами**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-Standart) добавили информацию о работе с эконом-товарами. | \r\n| [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Добавили параметр `stocks.quant_size` в запрос и `result.quant_size` в ответ метода. |\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Добавили параметр `prices.quant_size` в запрос метода. |\r\n\r\n## 31 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|\r\n| /v3/returns/company/fbo
/v3/returns/company/fbs | Методы устаревают и будут отключены 28 декабря 2024 года. Переключитесь на метод [/v1/returns/list](#operation/returnsList). |\r\n\r\n## 25 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/product/import/info](#operation/ProductAPI_GetImportProductsInfo)| Параметр `result.items.errors.optional_description_elements` в ответе метода устаревает и будет всегда возвращать пустое значение. |\r\n\r\n## 24 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------|----------------|\r\n| [/v1/posting/fbs/split](#operation/FbsSplit) | Добавили бета-метод для разделения заказа на отправления без сборки. |\r\n\r\n## 23 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------|----------------|\r\n| /v3/returns/company/fbs | Добавили статусы `arrived_for_resale` и `moving_to_resale` в параметр запроса `filter.status`. |\r\n\r\n## 22 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|\r\n| — | Добавили [раздел с методами](#tag/BetaIntro), которые находятся на стадии тестирования. |\r\n| [/v1/analytics/turnover/stocks](#operation/AnalyticsAPI_StocksTurnover) | Добавили бета-метод для получения информации об оборачиваемости товара. |\r\n\r\n## 17 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/posting/cutoff/set](#operation/PostingAPI_SetPostingCutoff) | Добавили метод для уточнения даты отгрузки отправления, которое доставляет неинтегрированный перевозчик или продавец. |\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Добавили параметр `result.postings.available_actions` в ответы методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.available_actions` в ответ метода. |\r\n| — | Добавили информацию об указании даты отгрузки отправлений, которые доставляет неинтегрированный перевозчик или продавец по схемам [rFBS Стандарт](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Standart) и [rFBS Crossborder](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Crossborder). |\r\n| [/v1/products/geo-restrictions-catalog-by-filter](#operation/ProductAPI_GetGeoRestrictionsV1) | Удалили метод /v1/products/geo-restrictions-catalog-by-filter из документации. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Обновили описание параметра `items.geo_names` в запросе метода. |\r\n\r\n## 16 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------|----------------|\r\n| [/v1/returns/list](#operation/returnsList) | Добавили метод для получения информации о возвратах FBO и FBS. |\r\n| [/v1/rating/summary](#operation/RatingAPI_RatingSummaryV1) | Добавили параметр `localization_index` в ответ метода. |\r\n\r\n## 11 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------|-----------------------------------------------------|\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Обновили раздел «Загрузка видео» в описании метода. |\r\n\r\n## 8 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Обновили описание параметров `result.postings.cancellation.cancellation_type` и `result.postings.cancellation.cancellation_initiator` в ответе метода. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Обновили описание параметров `result.cancellation.cancellation_type` и `result.cancellation.cancellation_initiator` в ответе метода. |\r\n| [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList) | Обновили описание параметра `result.details.services.items.name` в ответе метода. |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Обновили описание параметров `filter.operation_type` в запросе метода и `result.operations.services.name` в ответе метода. |\r\n| [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4) | Обновили описание метода. |\r\n\r\n\r\n## 3 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------|-------------------------------------------------------------------------------------|\r\n| [/v1/posting/fbo/cancel-reason/list](#operation/PostingAPI_GetPostingFboCancelReasonList) | Добавили метод для получения информации о причинах отмены отправлений по схеме FBO. |\r\n| /v1/product/import/stocks

[/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Обновили описание метода и параметра `stocks.stock` в запросе метода. |\r\n\r\n## 2 октября 2024\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------|-------------------------------|\r\n| [/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct) | Обновили описание метода. |\r\n| [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList) | Обновили пример ответа. |\r\n\r\n\r\n## 1 октября 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3)

/v3/products/info/attributes | Параметр `image_group_id` устарел, удалили его из примеров кода. |\r\n\r\n## 20 сентября 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------|-----------------------------------------------------------------------|\r\n| [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2) | Обновили описание параметра `orders.state` в ответе метода. |\r\n| [/v2/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersListV2) | Обновили описание параметра `filter.states` в запросе метода. |\r\n| [/v1/supply-order/bundle](#operation/SupplyOrderBundle) | Обновили описание параметров `bundle_ids` и `limit` в запросе метода. |\r\n\r\n\r\n## 19 сентября 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersList)
[/v1/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrder) | Методы устаревают и будут отключены в будущем. Переключитесь на новые версии — [/v2/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersListV2) и [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2). |\r\n| [/v1/supply-order/status/counter](#operation/SupplyOrderAPI_SupplyOrderStatusCounter) | Добавили новый метод для получения статуса заявки и количества поставок в этом статусе. |\r\n| [/v1/supply-order/timeslot/get](#operation/SupplyOrderAPI_GetSupplyOrderTimeslots)
[/v1/supply-order/timeslot/update](#operation/SupplyOrderAPI_UpdateSupplyOrderTimeslot)
[/v1/supply-order/timeslot/status](#operation/SupplyOrderAPI_GetSupplyOrderTimeslotStatus) | Добавили новые методы по работе с интервалами поставки. |\r\n| [/v1/supply-order/pass/create](#operation/SupplyOrderAPI_SupplyOrderPassCreate)
[/v1/supply-order/pass/status](#operation/SupplyOrderAPI_SupplyOrderPassStatus) | Добавили новые методы для создания пропуска на фулфилмент и получения статуса данных. |\r\n| [/v1/supply-order/bundle](#operation/SupplyOrderBundle) | Добавили метод для получения состава поставки или заявки на поставку. |\r\n| — | В разделе [**Порядок работы с методами → Схема FBO → Получите информацию о заявках на поставку**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBO) обновили порядок работы с методами по схеме FBO. |\r\n\r\n## 18 сентября 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Дополнили описание параметра `filter.operation_type` в запросе метода и `result.operations.services.name` в ответе метода. |\r\n| [/v2/finance/realization](#operation/FinanceAPI_GetRealizationReportV2) | Добавили параметр `result.rows.delivery_commission.bank_coinvestment` в ответ метода. |\r\n\r\n## 6 сентября 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3)
/v3/products/info/attributes | Добавили параметр `items.type_id` в запрос метода [/v3/product/import](#operation/ProductAPI_ImportProductsV3) и `result.type_id` в ответ метода /v3/products/info/attributes.
[Подробнее о переходе на `type_id`](https://dev.ozon.ru/start/334-Ispolzovanie-polia-type-id-v-Seller-API). |\r\n\r\n## 28 августа 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|\r\n| [/v2/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehousesV2) | Добавили параметр `result.rows.idc` в ответ метода. |\r\n\r\n## 26 августа 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Добавили параметр `new_description_category_id` в запрос метода — он используется для смены категории уже созданного товара. |\r\n\r\n## 9 августа 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|\r\n| [/v1/description-category/attribute/values/search](#operation/DescriptionCategoryAPI_SearchAttributeValues) | Добавили метод для поиска по справочным значениям характеристики. |\r\n\r\n## 8 августа 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|---------------------------------------------------|\r\n| [Пуш-уведомления](#section/Pervichnoe-podklyuchenie-push-uvedomlenij) | Описали ошибки при подключении пуш-уведомлений. |\r\n\r\n\r\n## 5 августа 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersList) | В запросе и ответе удалили статусы поставки по заявке: `DRAFT`, `SUPPLY_VARIANTS_ARRANGING`, `HAS_NO_SUPPLY_VARIANTS_ARCHIVE`, `HAS_NO_SUPPLY_VARIANTS_NEW`, `SUPPLY_VARIANT_CONFIRMATION`, `TIMESLOT_BOOKING`. |\r\n| [/v1/products/geo-restrictions-catalog-by-filter](#operation/ProductAPI_GetGeoRestrictionsV1) | Метод устаревает и будет отключён 1 октября 2024. |\r\n\r\n## 2 августа 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [Частые ошибки](#tag/Errors) | Обновили описание ошибки `Invalid Api-Key, please contact support` для метода [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate). | \r\n| [Частые ошибки](#tag/Errors) | Удалили метод /v2/posting/fbs/ship из документации. |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Добавили вид услуги `OperationMarketplaceAgencyFeeAggregator3PLGlobal` в параметр `result.operations.services.name`. |\r\n| [/v1/report/info](#operation/ReportAPI)
[/v1/report/list](#operation/ReportAPI_ReportList)
[/v1/report/products/create](#operation/ReportAPI_CreateCompanyProductsReport)
/v1/report/returns/create
[/v1/report/postings/create](#operation/ReportAPI_CreateCompanyPostingsReport)
[/v1/report/discounted/create](#operation/ReportAPI_CreateDiscountedReport)
[/v1/report/warehouse/stock](#operation/ReportAPI_CreateStockByWarehouseReport) | Обновили описание параметров `code` и `file` в ответах и запросах методов. |\r\n## 22 июля 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------|----------------------------|\r\n| [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList)
[/v1/report/products/create](#operation/ReportAPI_CreateCompanyProductsReport)
/v1/report/returns/create
[/v1/report/postings/create](#operation/ReportAPI_CreateCompanyPostingsReport)
[/v1/report/discounted/create](#operation/ReportAPI_CreateDiscountedReport)
[/v1/report/warehouse/stock](#operation/ReportAPI_CreateStockByWarehouseReport)
[/v2/finance/realization](#operation/FinanceAPI_GetRealizationReportV2)
[/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3)
[/v3/finance/transaction/totals](#operation/FinanceAPI_FinanceTransactionTotalV3)
[/v1/analytics/data](#operation/AnalyticsAPI_AnalyticsGetData)
[/v2/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehousesV2)
[/v1/rating/summary](#operation/RatingAPI_RatingSummaryV1)
[/v1/rating/history](#operation/RatingAPI_RatingHistoryV1)
[/v1/return/giveout/list](#operation/ReturnAPI_GiveoutList)
[/v1/return/giveout/info](#operation/ReturnAPI_GiveoutInfo)| Обновили описание методов. |\r\n\r\n## 27 июня 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Добавили параметр `filter.last_changed_status_date` в запрос метода. | \r\n| [Частые ошибки](#tag/Errors) | Добавили описание ошибки `GTD_MUST_BE_SPECIFIED_FOR_PRODUCT_COUNTRY` для метода [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate) и `NO_POSTINGS_FOR_BATCH_DOWNLOAD` для метода [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel). |\r\n| /v2/product/info/list | В параметре `product_id` изменили описание формата ввода данных. |\r\n| [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)
[/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting) | Добавили возможные значения параметра `result.analytics_data.payment_type_group_name` в ответе метода. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили возможные значения параметра `result.postings.analytics_data.payment_type_group_name` в ответе метода. Дополнили описание статуса `cancelled_from_split_pending`. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Обновили описание параметров `addresse.phone`, `courier.phone` и `customer.phone` в ответе метода. | \r\n\r\n\r\n## 18 июня 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3)

[/v1/product/import-by-sku](#operation/ProductAPI_ImportProductsBySKU)

/v2/product/info/list

/v2/product/info

/v4/product/info/prices | Параметр `premium_price` устарел, удалили его из примеров кода. | \r\n\r\n\r\n## 10 июня 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------|--------------------------------------------------------|\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)
[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Удалили параметр `customer.customer_email` из ответа методов. | \r\n\r\n## 7 июня 2024\r\n\r\n| Раздел | Что изменилось |\r\n|---------------------------------------------|----------------------------------------------------------------------------------------------------------|\r\n| [Порядок работы с методами](#tag/Process) | Добавили информацию о [резервировании товаров](#section/Obnovite-ceny-i-ostatki-tovarov/Rezerv-tovarov). |\r\n\r\n\r\n## 31 мая 2024\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------|------------------------------------------------------------------------------------------------------|\r\n| /v1/invoice/create-or-update | Метод устарел, удалили его из документации. Используйте [/v2/invoice/create-or-update](#operation/InvoiceAPI_InvoiceCreateOrUpdateV2). |\r\n| /v1/invoice/get | Метод устарел, удалили его из документации. Используйте [/v2/invoice/get](#operation/invoice_getV2). |\r\n\r\n## 24 мая 2024\r\n\r\n| Метод / раздел | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Заменили `MarketplaceServiceStorageItem` на `OperationMarketplaceServiceStorage` в параметре ответа `operations.services`. |\r\n| [/v1/product/related-sku/get](#operation/ProductAPI_ProductGetRelatedSKU) | Обновили описание метода. |\r\n| /v2/product/info/list | Обновили описание параметра `items.id` в ответе метода. |\r\n| /v3/returns/company/fbs | Обновили описание параметра `returns.moving_to_place_name` в ответе метода. |\r\n| [/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)

[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)

[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)

[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)

[/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Пометили устаревшими параметры `postings.financial_data.products.item_services` и `postings.financial_data.posting_services` в ответе методов. |\r\n| [Частые ошибки](#tag/Errors) | Добавили описание ошибки `Incorrect_density` для метода [/v3/product/import](#operation/ProductAPI_ImportProductsV3) и `Incorrect_carriage_status` для [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate). |\r\n\r\n## 23 мая 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatchV2) | Добавили новую версию метода для создания задания на формирование этикеток. |\r\n| [/v1/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatch) | Метод устаревает и будет отключён в будущем. Мы предупредим вас об этом за месяц. Переключитесь на новую версию [/v2/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatchV2). |\r\n\r\n## 17 мая 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4) | Добавили описание ошибки `EXEMPLAR_INFO_NOT_FILLED_COMPLETELY` в таблице [**Частые ошибки**](#tag/Errors). |\r\n| /v3/returns/company/fbs | Обновили описание параметра `filter.status` в запросе метода и параметра `returns.product_id` в ответе метода. |\r\n| [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage)

[/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Обновили описание метода. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Изменили описание параметра `items.description_category_id` в примере запроса. |\r\n| /v4/product/info/prices

[/v3/product/import](#operation/ProductAPI_ImportProductsV3)

/v2/product/info/list

/v2/product/info

[/v1/product/import-by-sku](#operation/ProductAPI_ImportProductsBySKU) | Отметили устаревшим параметр `premium_price` в ответах и запросах методов. |\r\n| [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues)

[/v1/description-category/attribute](/#operation/DescriptionCategoryAPI_GetAttributes)

[/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree) | Добавили примеры запросов и ответов. |\r\n| — | Обновили описание уведомлений [TYPE_NEW_POSTING](#section/Novoe-otpravlenie), [TYPE_POSTING_CANCELLED](#section/Otmena-otpravleniya), [TYPE_STATE_CHANGED](#section/Izmenenie-statusa-otpravleniya), [TYPE_CUTOFF_DATE_CHANGED](#section/Izmenenie-daty-otgruzki-otpravleniya), [TYPE_DELIVERY_DATE_CHANGED](#section/Izmenenie-daty-dostavki-otpravleniya) в разделе [**Пуш-уведомления**](#tag/push_types). |\r\n\r\n## 7 мая 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|\r\n| /v2/product/info | Добавили параметры `result.is_archived` и `result.is_autoarchived` в ответ метода. |\r\n| /v2/product/info/list | Добавили параметры `result.items.is_archived` и `result.items.is_autoarchived` в ответ метода. |\r\n| [/v1/product/unarchive](#operation/ProductAPI_ProductUnarchive) | Метод доступен для работы. Обновили описание параметра `product_id` в запрос метода. |\r\n\r\n## 3 мая 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v1/product/import/stocks | Обновили описание метода. Метод устаревает и будет отключён в будущем. Переключитесь на новую версию — указали её в описании метода. |\r\n| — | В разделе [**Частые ошибки**](#tag/Errors) для методов [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) и /v1/product/import/stocks добавили описание ошибок `Fatal error: You have more than 1 FBS warehouses. Please use API Method POST /v2/products/stocks`, `product_is_not_created`, `offer_id_not_found`, `FLAMMABLE_ONLY_ON_SELF_OR_PROVIDER_DELIVERY` и `WAREHOUSE_NOT_FOUND`. |\r\n| /v1/product/import/stocks

[/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Обновили описание параметра `result.errors.code` в ответе метода. |\r\n\r\n## 2 мая 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/finance/realization](#operation/FinanceAPI_GetRealizationReportV2) | Добавили новую версию метода для получения отчёта о реализации товаров. |\r\n| /v1/invoice/create-or-update | Метод устаревает и будет отключён 31 мая 2024 года. Переключитесь на новую версию [/v2/invoice/create-or-update](#operation/InvoiceAPI_InvoiceCreateOrUpdateV2). |\r\n| [/v1/invoice/file/upload](#operation/invoice_upload) | Добавили метод для загрузки счёта-фактуры. |\r\n| /v1/invoice/get | Метод устаревает и будет отключён 31 мая 2024 года. Переключитесь на новую версию [/v2/invoice/get](#operation/invoice_getV2). |\r\n\r\n## 26 апреля 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | В разделе [**Частые ошибки**](#tag/Errors) для методов [/v4/fbs/posting/product/exemplar/set](#operation/PostingAPI_SetProductExemplar) и [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) добавили описание ошибок `GTD_IS_REQUIRED_ONLY_FOR_LEGAL_CUSTOMER` и `EXEMPLAR_ID does not belong to product PRODUCT_ID`. |\r\n\r\n## 16 апреля 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | В ответе метода дополнили описание параметра `result.operations.services.name`. |\r\n| [/v1/pricing-strategy/product/info](#operation/pricing_items-info) | Добавили описание метода. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Дополнили описание метода информацией о загрузке видеообложек. |\r\n| — | В разделе [**Частые ошибки**](#tag/Errors) для метода [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2):
• удалили описание ошибки `SKU STOCK NOT CHANGED`;
• добавили описание ошибки `NOT_FOUND_ERROR`. |\r\n| — | Дополнили раздел [**Порядок работы с методами → Схема FBS Стандарт**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-Standart) информацией о получении `exemplar_id` методом [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet). |\r\n\r\n## 9 апреля 2024\r\n\r\n| Метод / раздел | Что изменилось |\r\n|------------------------------------------------------------------|-------------------------------------------------------|\r\n| [/v1/carriage/get](#operation/CarriageGet) | Обновили описание параметра `status` в ответе метода. |\r\n\r\n## 8 апреля 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------|-------------------------------------------------------------------------|\r\n| [/v1/product/pictures/import](#operation/ProductAPI_ProductImportPictures)

/v1/product/pictures/info | В ответе метода для поля `result.pictures.state` изменили статус `failed` на `pending`. |\r\n\r\n## 1 апреля 2024\r\n\r\n| Метод / раздел | Что изменилось |\r\n|------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/carriage/get](#operation/CarriageGet) | Добавили метод для получения информации о перевозке. |\r\n| [/v1/carriage/pass/create](#operation/carriagePassCreate) | Добавили метод для создания пропуска. |\r\n| [/v1/carriage/pass/update](#operation/carriagePassUpdate) | Добавили метод для обновления пропуска. |\r\n| [/v1/carriage/pass/delete](#operation/carriagePassDelete) | Добавили метод для удаления пропуска. |\r\n| [/v1/return/pass/create](#operation/returnPassCreate) | Добавили метод для создания пропуска на вывоз возвратов. |\r\n| [/v1/return/pass/update](#operation/returnPassUpdate) | Добавили метод для обновления пропуска на вывоз возвратов. |\r\n| [/v1/return/pass/delete](#operation/returnPassDelete) | Добавили метод для удаления пропуска на вывоз возвратов. |\r\n| [/v1/pass/list](#operation/PassList) | Добавили метод для получения списка пропусков. |\r\n| [/v1/returns/company/fbs/info](#operation/returnsCompanyFBSInfo) | Добавили метод для получения информации о возвратах FBS и их количестве. |\r\n| [Порядок работы с методами](#tag/Process) | В разделах [Схема FBS Стандарт](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-Standart) и [Получите возвратные отгрузки по штрихкоду](#section/Poluchite-vozvratnye-otgruzki-po-shtrihkodu) описали новые методы по работе с пропусками. |\r\n| [Доставка FBS](#tag/DeliveryFBS) | Создали новый раздел, перенесли в него старые методы и добавили новый — [/v1/carriage/get](#operation/CarriageGet). |\r\n| [Доставка rFBS](#tag/DeliveryrFBS) | Создали новый раздел, перенесли в него старые методы. |\r\n\r\n## 29 марта 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------|\r\n| /v2/product/info | Параметр `minValue` в ответе метода устарел, удалили его из документации. |\r\n| /v4/product/info/prices
/v2/product/info | Параметр `recommended_price` в ответе метода устарел, удалили его из документации. |\r\n\r\n## 22 марта 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------|-------------------------------------------------------|\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)

[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3)

[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList)

[/v2/posting/fbo/get](#operation/PostingAPI_GetFboPosting)

[/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList) | Отметили устаревшим параметр `client_price` в ответе. |\r\n\r\n## 11 марта 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v2/category/attribute/values | Метод устарел, удалили его из документации. Используйте [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues). |\r\n| /v2/category/tree | Метод устарел, удалили его из документации. Используйте [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree). |\r\n| /v3/category/attribute | Метод устарел, удалили его из документации. Используйте [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes). |\r\n| /v2/product/import | Метод устарел, удалили его из документации. Используйте [/v3/product/import](#operation/ProductAPI_ImportProductsV3). |\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Добавили значение `hybryd` для параметра ответа `tpl_integration_type`. |\r\n\r\n## 1 марта 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v3/returns/company/fbs | Удалили параметр `accepted_from_customer_moment` из запроса и ответа метода. |\r\n\r\n## 29 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | В разделе **Порядок работы с методами** добавили, что для продавцов [**rFBS Стандарт**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Standart) с 11 марта 2024 года максимальный срок доставки до покупателя — 30 дней. Обновите срок в настройках вашего метода. Если срок будет больше максимального, он поменяется автоматически. |\r\n\r\n## 21 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v2/category/tree
/v3/category/attribute
/v2/category/attribute/values
/v2/product/import | Методы устаревают и будут отключены 11 марта 2024 года. |\r\n\r\n## 20 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------|----------------------------------------------------------------------------------------------------------------|\r\n| /v1/chat/list | Метод устарел, удалили его из документации. Используйте [/v2/chat/list](#operation/ChatAPI_ChatListV2). |\r\n| /v1/chat/history
/v1/chat/updates | Методы устарели, удалили их из документации. Используйте [/v2/chat/history](#operation/ChatAPI_ChatHistoryV2). |\r\n\r\n## 16 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------|------------------------------------------------------------------------------------------|\r\n| [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage) | Дополнили описание метода: по умолчанию статус созданных отправлений `awaiting_deliver`. |\r\n| [/v2/chat/history](#operation/ChatAPI_ChatHistoryV2) | Добавили описание метода. |\r\n| [/v1/analytics/data](#operation/AnalyticsAPI_AnalyticsGetData) | Обновили описание параметра `id` в ответе метода. |\r\n| [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) | Дополнили описание метода: используйте метод для получения `exemplar_id`. |\r\n| [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) | Дополнили описание метода информацией об ответе. |\r\n\r\n## 13 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------|-------------------------------------------------------------------------|\r\n| [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) | Добавили параметр `result.category_dependent` в ответ метода. |\r\n\r\n## 9 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v3/posting/fbs/ship | Метод устарел, удалили его из документации. Используйте [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4). |\r\n| /v3/posting/fbs/ship/package | Метод устарел, удалили его из документации. Используйте [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage). |\r\n\r\n## 8 февраля 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------|-----------------------------------------------------------------------------------|\r\n| /v3/returns/company/fbo | Добавили параметр `return_id` и обновили описание параметра `id` в ответе метода. |\r\n\r\n## 26 января 2024\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------|-----------------------------------------------------------------------------------------|\r\n| /v3/returns/company/fbo | Обновили описания параметров `status` в запросе метода и `status_name` в ответе метода. |\r\n\r\n## 25 декабря 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|\r\n| [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) | Добавили два параметра в ответ метода: `max_value_count` и `attribute_complex_id`. |\r\n| [/v3/product/import](#operation/ProductAPI_ImportProductsV3) | Добавили новую версию метода для загрузки и обновления товаров. |\r\n| /v2/product/info
/v2/product/info/list | Добавили параметр `type_id` в ответ методов. |\r\n| [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)
[/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes)
[/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues) | Изменили параметр `category_id` на `description_category_id` в запрос и ответ методов. |\r\n\r\n## 15 декабря 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v1/chat/list | Дополнили значение параметра `page_size` в запросе метода. Метод устаревает и будет отключён в будущем. Переключитесь на новую версию — указали её в описании метода. |\r\n| /v1/chat/history | Обновили значения параметра `limit` в запросе метода. Метод устаревает и будет отключён в будущем. Переключитесь на новую версию — указали её в описании метода. |\r\n| [/v2/chat/list](#operation/ChatAPI_ChatListV2)
[/v2/chat/history](#operation/ChatAPI_ChatHistoryV2) | Дополнили значения параметра `limit` в запросах методов. | \r\n| /v1/chat/updates | Дополнили значения параметра `limit` в запросах методов. Метод устаревает и будет отключён в будущем. Переключитесь на альтернативную версию — указали её в описании метода. |\r\n\r\n## 12 декабря 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList) | Дополнили описание метода: если период больше года, вернётся ошибка `PERIOD_IS_TOO_LONG`. Обновили описание параметра `offset` в запросе метода. |\r\n| /v3/products/info/attributes | Добавили описание параметра `images.default` в ответе метода. |\r\n| [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Из описания метода убрали статус `delivered` и добавили информацию о получении актуальной даты отгрузки. |\r\n| [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList) | Дополнили значения параметра `items.name` в ответе метода. |\r\n| /v2/product/info/list | Из описания метода убрали информацию о совпадении полей в параметре `items` с методом /v2/product/info. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Обновили описание метода: добавили информацию о получении актуальной даты отгрузки. |\r\n| [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting) | Обновили описание метода: убрали идентификаторы причин отмены и добавили информацию о проверке статуса отмены для отправления. |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Дополнили значения параметра `filter.operation_type` в запросе метода. |\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Обновили описание метода: добавили информацию об ошибке `action_price_enabled_min_price_missing`. |\r\n| [/v3/finance/transaction/totals](#operation/FinanceAPI_FinanceTransactionTotalV3) | Дополнили описание метода: если номера отправлений заполнены неправильно, в ответе вернутся нулевые значения. |\r\n| /v1/product/import/stocks | Обновили описание метода: задать наличие товара возможно только после того, как его статус сменится на `price_sent`. |\r\n| [/v1/report/info](#operation/ReportAPI_ReportInfo) | Обновили описание параметра `result.file` в ответе метода. |\r\n\r\n## 7 декабря 2023\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel) | Обновили описание метода: убрали информацию, что при работе по схеме rFBS не нужно печатать этикетки. |\r\n\r\n## 1 декабря 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|\r\n| [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) | Добавили новую версию метода для проверки и сохранения данных экземпляров. |\r\n| [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet) | Добавили метод для получения данных о созданных экземплярах. |\r\n| [/v4/posting/fbs/ship/package](#operation/PostingAPI_ShipFbsPostingPackage) | Добавили новую версию метода для частичной сборки отправления. |\r\n| [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus)
[/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `exemplars.exemplar_id` в ответы методов. |\r\n\r\n\r\n## 30 ноября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|\r\n| [/v2/returns/rfbs/list](#operation/RFBSReturnsAPI_ReturnsRfbsListV2) | Добавили метод для получения заявок на возврат rFBS-заказов. |\r\n| [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2) | Добавили метод для получения информации о заявке на возврат rFBS-заказа. |\r\n| [/v2/returns/rfbs/reject](#operation/RFBSReturnsAPI_ReturnsRfbsRejectV2) | Добавили метод для отклонения заявки на возврат rFBS-заказа. |\r\n| [/v2/returns/rfbs/compensate](#operation/RFBSReturnsAPI_ReturnsRfbsCompensateV2) | Добавили метод для частичной компенсации стоимости товара в rFBS-заказе. |\r\n| [/v2/returns/rfbs/verify](#operation/RFBSReturnsAPI_ReturnsRfbsVerifyV2) | Добавили метод для одобрения заявки на возврат rFBS-заказа. |\r\n| [/v2/returns/rfbs/receive-return](#operation/RFBSReturnsAPI_ReturnsRfbsReceiveReturnV2) | Добавили метод для подтверждения, что товар получили для проверки. |\r\n| [/v2/returns/rfbs/return-money](#operation/RFBSReturnsAPI_ReturnsRfbsReturnMoneyV2) | Добавили метод для возврата полной стоимости товара в rFBS-заказе. |\r\n| — | В раздел [**Порядок работы с методами**](#tag/Process) добавили подраздел [**Управляйте заявками на возврат rFBS-заказов**](#section/Upravlyajte-zayavkami-na-vozvrat-rFBS-zakazov). |\r\n\r\n## 29 ноября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\r\n| [/v1/return/giveout/is-enabled](#operation/ReturnAPI_GiveoutIsEnabled) | Добавили метод для проверки возможности получения возвратных отгрузок по штрихкоду. |\r\n| [/v1/return/giveout/get-pdf](#operation/ReturnAPI_GiveoutGetPDF)
[/v1/return/giveout/get-png](#operation/ReturnAPI_GiveoutGetPNG) | Добавили методы для получения штрихкода возвратной отгрузки в формате PDF и PNG. |\r\n| [/v1/return/giveout/barcode](#operation/ReturnAPI_GiveoutGetBarcode) | Добавили метод для получения штрихкода возвратной отгрузки в текстовом виде. |\r\n| [/v1/return/giveout/barcode-reset](#operation/ReturnAPI_GiveoutBarcodeReset) | Добавили метод для обновления штрихкода возвратной отгрузки. |\r\n| [/v1/return/giveout/list](#operation/ReturnAPI_GiveoutList) | Добавили метод для получения списка возвратных отгрузок. | \r\n| [/v1/return/giveout/info](#operation/ReturnAPI_GiveoutInfo) | Добавили метод для получения информации о возвратных отгрузках. |\r\n\r\n## 8 ноября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|\r\n| [v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Обновили пример запроса. |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Дополнили описание параметра `result.operations.services.name` в ответе метода: добавили услугу drop-off в пункте приёма заказов. |\r\n| /v2/product/info
/v2/product/info/list | Дополнили описание метода: параметр `active_product` устарел, используйте значение параметра `visible`. |\r\n| [/v1/report/warehouse/stock](#operation/ReportAPI_CreateStockByWarehouseReport) | Обновили описание метода: он возвращает остатки только для FBS-складов. |\r\n| [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Обновили описание метода: задать наличие товара возможно только после того, как его статус сменится на `price_sent`. |\r\n\r\n## 30 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|-------------------------------------------------------------------------------------------|\r\n| [/v1/report/postings/create](#operation/ReportAPI_CreateCompanyPostingsReport) | Обновили описание параметра `delivery_schema` в запросе метода и пример запроса. |\r\n\r\n## 26 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------|---------------------------------------------|\r\n| [/v1/product/related-sku/get](#operation/ProductAPI_ProductGetRelatedSKU) | Добавили метод для получения связанных SKU. |\r\n\r\n## 19 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/product/info/stocks](#operation/ProductAPI_GetProductInfoStocksV3) | Обновили пример ответа. Теперь метод возвращает остатки товаров по всем схемам работы — FBO, FBS и Crossborder, даже если вы не работаете по каким-то из них. |\r\n| [/v1/report/info](#operation/ReportAPI_ReportInfo) | Добавили описания статусов `waiting` и `processing` в параметр `status` их ответа метода. |\r\n| [/v3/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV3) | Метод устаревает и будет отключён в будущем. Переключитесь на новую версию — указали её в описании метода. |\r\n\r\n## 18 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/report/warehouse/stock](#operation/ReportAPI_CreateStockByWarehouseReport) | Добавили метод для формирования отчёта об остатках на складе. |\r\n| [/v1/report/list](#operation/ReportAPI_ReportList) | Добавили в ответ метода, в течение какого времени доступна ссылка для получения отчёта с `report_type=\"SELLER_RETURNS\"`. |\r\n| /v1/report/returns/create | В ответ метода добавили, в течение какого срока можно получить отчёт по идентификатору. |\r\n| /v1/report/stock/create | Метод устарел, удалили его из документации. Используйте [/v1/report/warehouse/stock](#operation/ReportAPI_CreateStockByWarehouseReport). |\r\n| /v1/report/discounted/info | Метод устарел, удалили его из документации. Чтобы получить отчёт об уценённых товарах, запустите формирование через [/v1/report/discounted/create](#operation/ReportAPI_CreateDiscountedReport) и получите его через [/v1/report/info](#operation/ReportAPI_ReportInfo). |\r\n| /v1/report/discounted/list | Метод устарел, удалили его из документации. Чтобы получить список отчётов об уценённых товарах, сделайте запрос метода [/v1/report/info](#operation/ReportAPI_ReportInfo) с `report_type=\"SELLER_PRODUCT_DISCOUNTED\"`. |\r\n| /v1/report/products/movement/create | Метод устарел, удалили его из документации. |\r\n\r\n## 17 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | В раздел [**Порядок работы с методами**](#tag/Process) добавили подраздел [**Схема rFBS Express с доставкой в пункт выдачи**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-rFBS-Express-s-dostavkoj-v-punkt-vydachi). |\r\n\r\n## 10 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | Дополнили таблицу [Частые ошибки](#tag/Errors). Добавили описания ошибок в методах:
• [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2)
• [/v3/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV3)
• [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4)
• [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel)
• [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)
• [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting)
• /v2/product/import |\r\n| [/v1/posting/carriage-available/list](#operation/PostingAPI_GetCarriageAvailableList)
[/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)
[/v2/posting/fbs/act/check-status](#operation/PostingAPI_PostingFBSActCheckStatus)
[/v2/posting/fbs/act/get-pdf](#operation/PostingAPI_PostingFBSGetAct) | Для продавцов из СНГ остаются бумажные акты приёма-передачи при работе по схеме FBS. Дополнили описания методов — указали, какие документы можно получить продавцам из России и СНГ. |\r\n\r\n## 9 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/posting/carriage-available/list](#operation/PostingAPI_GetCarriageAvailableList)
[/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)
[/v2/posting/fbs/act/check-status](#operation/PostingAPI_PostingFBSActCheckStatus)
[/v2/posting/fbs/act/get-pdf](#operation/PostingAPI_PostingFBSGetAct)
[/v2/posting/fbs/digital/act/check-status](#operation/PostingAPI_PostingFBSGetAct)
[/v2/posting/fbs/digital/act/get-pdf](#operation/PostingAPI_PostingFBSGetDigitalAct) | Отказались от актов приёма-передачи при работе по схеме FBS — теперь вместо них можно получить лист отгрузки. Обновили описания методов, в которых затрагивались акты, и порядок работы с ними:
• [Схема FBS Стандарт](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-Standart): изменили пункты 6–11.
• [Схема FBS PickUp с доверительной приёмкой](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBS-PickUp-s-doveritelnoj-priyomkoj): изменили пункты 6–8.

[Подробнее об изменениях на dev.ozon.ru](https://dev.ozon.ru/news/248-Otkazhemsia-ot-aktov-priema-FBS-kak-eto-povliiaet-na-API) |\r\n\r\n## 6 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree) | Добавили новую версию метода для получения дерева категорий и типов товаров. |\r\n| [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) | Добавили новую версию метода для получения характеристик категории и типа товара. |\r\n| [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues) | Добавили новую версию метода для получения значений характеристики. |\r\n| /v2/category/tree
/v3/category/attribute
/v2/category/attribute/values | Методы устаревают и будут отключены в будущем. Переключитесь на новые версии — указали их в описании методов. |\r\n| /v3/products/info/attributes
/v2/product/info
/v2/product/info/list | Добавили параметр `description_category_id` в ответах методов и указали, как его использовать. Пометили параметр `category_id` в ответах методов как устаревающий и указали, как его использовать. |\r\n| — | В разделе [**Порядок работы с методами → Выгрузите атрибуты и характеристики Ozon**](#section/Vygruzite-atributy-i-harakteristiki-Ozon) обновили версии методов. |\r\n\r\n## 4 октября 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------|----------------------------------------------------|\r\n| [/v1/barcode/add](#operation/add-barcode) | Добавили метод для привязки штрихкодов к товарам. |\r\n| [/v1/barcode/generate](#operation/generate-barcode) | Добавили метод для создания штрихкодов на товары. |\r\n\r\n## 5 сентября 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------|---------------------------------------------|\r\n| /v1/polygon/delete | Метод устарел, удалили его из документации. |\r\n\r\n## 1 сентября 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2) | Добавили описание ошибки `MP_DELIVERY_ONLY_3PL_ERROR`:
• в описание параметра `result.errors` в ответе метода,
• в раздел [«Частые ошибки»](#tag/Errors). |\r\n\r\n## 30 августа 2023\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v4/product/info/prices | Добавили информацию о работе параметров `fbo_direct_flow_trans_max_amount` и `fbo_direct_flow_trans_min_amount` в описание метода. |\r\n| /v2/product/info | Добавили информацию о работе параметра `min_price` в описание метода. |\r\n\r\n## 25 августа 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/analytics/data](#operation/AnalyticsAPI_AnalyticsGetData) | Добавили ограничения для продавцов без Premium-подписки:
• в описание метода,
• в описание параметров `date_from`, `dimension` и `metrics` в запросе метода. |\r\n\r\n## 24 августа 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Обновили описание параметра `price` в запросе метода. Указали, какой должна быть разница между `price` и `old_price`. |\r\n\r\n## 22 августа 2023\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v1/report/transactions/create | Метод устарел, удалили его из документации. Используйте [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3). |\r\n| /v2/product/info/limit

/v3/product/info/limit | Методы устарели, удалили их документации. Используйте [/v4/product/info/limit](#operation/ProductAPI_GetUploadQuota). |\r\n| /v1/report/products/prices/create | Метод устарел, удалили его из документации. Используйте [/v4/product/info/price](#operation/ProductAPI_GetProductInfoPricesV4). |\r\n| /v1/analytics/item_turnover | Метод устарел, удалили его из документации. Чтобы получить отчёт по оборачиваемости FBO, запросите его в [личном кабинете](https://seller.ozon.ru/app/analytics/fulfillment-reports/turnover). |\r\n| /v1/analytics/stock_on_warehouses | Метод устарел, удалили его из документации. Используйте [/v2/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehousesV2). |\r\n| /v2/returns/company/fbs | Метод устарел, удалили его из документации. Используйте /v3/returns/company/fbs. |\r\n| /v1/report/finance/create | Метод устарел, удалили его из документации. Используйте [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList). |\r\n| /v2/returns/company/fbo | Метод устарел, удалили его из документации. Используйте /v3/returns/company/fbo. |\r\n\r\n## 2 августа 2023\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/analytics/data](#operation/AnalyticsAPI_AnalyticsGetData) | Удалили метрики из параметра `metrics` в запросе метода:
• `adv_view_pdp`,
• `adv_view_search_category`,
• `adv_view_all`,
• `adv_sum_all`,
• `postings`,
• `postings_premium`. |\r\n| /v1/invoice/create-or-update | Добавили параметры `HS_code`, `date`, `number`, `price` и `price_currency` в запрос метода. |\r\n\r\n## 31 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/product/info/stocks-by-warehouse/fbs](#operation/ProductAPI_ProductStocksByWarehouseFbs) | Добавили параметры `sku` в запрос метода и `result.sku` в ответ метода.

Добавили дату отключения параметров `fbs_sku` в запрос метода и `result.fbs_sku` в ответ метода. |\r\n| /v2/product/info | Добавили параметр `result.sku` в ответ метода.

Добавили дату отключения параметров `result.fbs_sku` и `result.fbo_sku` в ответ метода. |\r\n| /v2/product/info/list | Добавили параметр `result.items.sku` в ответ метода.

Добавили дату отключения параметров `result.items.fbs_sku` и `result.items.fbo_sku` в ответ метода. |\r\n\r\n## 24 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v4/product/info/prices | Добавили в ответ метода параметры:
• `result.items.acquiring`,
• `result.items.comissions.sales_percent_fbo`,
• `result.items.comissions.sales_percent_fbs`.

Дополнили в ответе методов описания параметров:
• `result.items.comissions.fbs_first_mile_min_amount`,
• `result.items.comissions.fbs_first_mile_max_amount`,
• `result.items.comissions.sales_percent`. |\r\n\r\n## 19 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------|-------------------------------------------------------------|\r\n| [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices) | Добавили параметр `prices.price_strategy_enabled` в запрос метода. |\r\n\r\n## 14 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode)

[/v2/posting/fbs/act/get-pdf](#operation/PostingAPI_PostingFBSGetAct)

[/v2/posting/fbs/digital/act/get-pdf](#operation/PostingAPI_PostingFBSGetDigitalAct)

[/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel)

[/v2/posting/fbs/act/get-container-labels](#operation/PostingAPI_PostingFBSActGetContainerLabels) | Обновили схемы и примеры для ответов методов: методы возвращают результат в бинарном виде. |\r\n| [/v1/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatch) | Обновили пример ответа. |\r\n| [/v1/posting/fbs/package-label/get](#operation/PostingAPI_GetLabelBatch) | Добавили пример ответа. |\r\n\r\n## 12 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode) | Удалили параметр `doc_type` из запроса метода. |\r\n| [/v2/posting/fbs/act/get-barcode/text](#operation/PostingAPI_PostingFBSGetBarcodeText) | Добавили метод, в котором можно получить значение штрихода из ответа [/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode). |\r\n\r\n## 6 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v3/returns/company/fbo | Добавили описание параметра `filter.status` в запросе метода.

Дополнили описание параметра `returns.status_name` в ответе метода. |\r\n\r\n## 4 июля 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| /v3/returns/company/fbs | Добавили параметры `returns.exemplar_id` и `returns.return_barcode` в ответ метода.

Изменили описания параметров `returns.id`, `returns.return_clearing_id` и `clearing_id` в ответе метода. |\r\n\r\n## 27 июня 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | Дополнили описание для всех схем FBS и rFBS в разделе [**Порядок работы с методами → Управляйте заказами FBO, FBS и rFBS**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS). Добавили изначальные статусы отправлений, а также ограничение для сборки заказа. |\r\n\r\n## 21 июня 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | Добавили описание уведомления [TYPE_CREATE_OR_UPDATE_ITEM](#section/Sozdanie-ili-obnovlenie-tovara) в раздел [**Пуш-уведомления → Уведомления, которые отправляет Ozon**](#tag/push_types). |\r\n| — | 15 июля 2023 года пуш-уведомления [TYPE_CREATE_ITEM](#section/Sozdanie-tovara) и [TYPE_UPDATE_ITEM](#section/Obnovlenie-tovara) будут отключены. Добавили предупреждение в описания уведомлений. |\r\n\r\n## 16 июня 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)

[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Добавили параметр `result.postings.prr_option` в ответы методов. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметры `result.prr_option.code`, `result.prr_option.price`, `result.prr_option.currency_code`, `result.prr_option.floor` в ответ метода. |\r\n\r\n## 14 июня 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|\r\n| [/v1/posting/fbs/timeslot/set](#operation/PostingAPI_SetPostingTimeslot) | Обновили пример запроса. |\r\n| [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList) | Исправили формат даты в примере ответа. |\r\n| [/v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting)

[/v2/posting/fbs/product/cancel](#operation/PostingAPI_CancelFbsPostingProduct) | Дополнили описания методов. |\r\n| [/v2/posting/fbs/act/list](#operation/PostingAPI_FbsActList) | Добавили значение статуса `closed` в описание параметра `filter.status` в запросе метода. |\r\n| [/v1/product/unarchive](#operation/ProductAPI_ProductUnarchive) | С 14 июня 2023 метод не работает. Добавили предупреждение в описание метода и раздел [**Отключение методов**](#tag/Disable). |\r\n\r\n## 2 июня 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметры `jw_uin` и `products_requiring_jw_uin` в ответ метода. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)

[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | Добавили параметр `products_requiring_jw_uin` в ответы методов. |\r\n| [/v4/fbs/posting/product/exemplar/set](#operation/PostingAPI_SetProductExemplar) | Добавили параметр `jw_uin` в запрос метода. |\r\n| [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus) | Добавили параметры `jw_uin`, `jw_uin_check_status` и `jw_uin_error_codes` в ответ метода. |\r\n| [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate) | Добавили параметр `jw_uin` в запрос и ответ метода. |\r\n| [/v1/product/archive](#operation/ProductAPI_ProductArchive)
[/v1/product/unarchive](#operation/ProductAPI_ProductUnarchive) | Добавили ограничение на количество `product_id`, которые можно передать в одном запросе. |\r\n\r\n## 29 мая 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|\r\n| [/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode) | Добавили метод получения штрихкода для отгрузки товара. |\r\n\r\n## 25 мая 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------|---------------------------------------------------------|\r\n| [/v2/fbs/posting/tracking-number/set](#operation/PostingAPI_FbsPostingTrackingNumberSet) | Добавили ограничение на добавление трек-номеров в описание метода. |\r\n| [/v1/supplier/available_warehouses](#operation/SupplierAPI_SupplierAvailableWarehouses) | Добавили метод для проверки загруженности складов Ozon. |\r\n\r\n## 17 мая 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------|-----------------------------------------------------|\r\n| [/v1/product/attributes/update](#operation/ProductAPI_ProductUpdateAttributes) | Добавили метод для обновления характеристик товара. |\r\n\r\n## 27 апреля 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|------------------------------------------------------------------------------------|\r\n| — | Обновили инструкцию [**Как получить API-ключ**](#section/Kak-poluchit-API-klyuch). |\r\n\r\n## 20 апреля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|\r\n| [/v1/finance/cash-flow-statement/list](#operation/FinanceAPI_FinanceCashFlowStatementList) | Добавили необязательный параметр `with_details` в запрос метода и параметр `details` в ответ метода. |\r\n| [/v1/pricing-strategy/competitors/list](#operation/pricing_competitors) | Добавили метод для получения списка конкурентов. | \r\n| [/v1/pricing-strategy/list](#operation/pricing_list) | Добавили метод для получения списка стратегий ценообразования. | \r\n| [/v1/pricing-strategy/create](#operation/pricing_create) | Добавили метод для создания стратегии ценообразования. | \r\n| [/v1/pricing-strategy/info](#operation/pricing_info) | Добавили метод для получения информации о стратегии ценообразования. | \r\n| [/v1/pricing-strategy/update](#operation/pricing_update) | Добавили метод для изменения списка выбранных конкурентов и названия стратегии ценообразования. | \r\n| [/v1/pricing-strategy/products/add](#operation/pricing_items-add) | Добавили метод для добавления товаров в стратегию ценообразования. | \r\n| [/v1/pricing-strategy/strategy-ids-by-product-ids](#operation/pricing_ids) | Добавили метод для проверки привязки товара к стратегии ценообразования. | \r\n| [/v1/pricing-strategy/products/list](#operation/pricing_items-list) | Добавили метод для получения списка товаров, которые привязаны к стратегии ценообразования. | \r\n| [/v1/pricing-strategy/products/delete](#operation/pricing_items-delete) | Добавили метод для удаления товаров из стратегии ценообразования. | \r\n| [/v1/pricing-strategy/product/info](#operation/pricing_items-info) | Добавили метод для получения цены товара у конкурента. |\r\n| [/v1/pricing-strategy/status](#operation/pricing_status) | Добавили метод для включения и отключения стратегии ценообразования. | \r\n| [/v1/pricing-strategy/delete](#operation/pricing_delete) | Добавили метод для удаления стратегии ценообразования. | \r\n| — | В разделе [**Порядок работы с методами**](#tag/Process) добавили подраздел [**Настройте стратегии ценообразования**](#section/Nastrojte-strategii-cenoobrazovaniya). |\r\n\r\n## 11 апреля 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/product/info/subscription](#operation/ProductAPI_GetProductInfoSubscription) | Добавили метод для получения количества пользователей, подписанных на товары. |\r\n| /v2/product/info | Добавили параметр `result.price_indexes` в ответ метода.

Пометили параметр `result.price_index` в ответе как неактуальный. |\r\n| /v2/product/info/list

/v4/product/info/prices | Добавили параметр `result.items.price_indexes` в ответ метода.

Пометили параметр `result.items.price_index` в ответе как неактуальный. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | Добавили параметр `result.substatus` в ответ метода. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) | Добавили параметр `result.postings.substatus` в ответ метода.

Дополнили описание параметра `result.postings.status` в ответе метода. |\r\n\r\n## 10 апреля 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v1/supply-order/list](#operation/SupplyOrderAPI_GetSupplyOrdersList) | Добавили метод для получения списка заявок на поставку на склад Ozon. |\r\n| [/v1/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrder) | Добавили метод для получения информации о заявке на поставку. |\r\n| [/v1/supply-order/items](#operation/SupplyOrderAPI_GetSupplyOrderItems) | Добавили метод для получения списка товаров в заявке на поставку. |\r\n| — | Добавили подраздел [**Схема FBO → Получите информацию о заявках на поставку**](#section/Upravlyajte-zakazami-FBO-FBS-i-rFBS/Shema-FBO) в раздел [**Порядок работы с методами**](#tag/Process). |\r\n\r\n## 22 марта 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------|------------------------------------------------------------------------|\r\n| /v3/returns/company/fbs | Добавили новую версию метода для получения информации о возвратах FBS. |\r\n\r\n## 21 марта 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|\r\n| — | В раздел [**Пуш-уведомления → Как подключить**](#tag/push_start) добавили IP-адреса, с которых отправляются уведомления. |\r\n| [/v2/returns/company/fbs](#operation/ReturnsAPI_GetReturnsCompanyFBS) | Добавили описание статусов `moving`, `disposed` и `disposing` для параметра `filter.status` в запросе метода. |\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Дополнили описание параметра `filter.operation_type` в запросе метода. |\r\n\r\n## 14 марта 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|-----------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/finance/transaction/list](#operation/FinanceAPI_FinanceTransactionListV3) | Обновили описание метода: теперь максимальный период, за который можно получить информацию в одном запросе — 1 месяц. |\r\n\r\n## 3 марта 2023\r\n\r\n| Метод | Что изменилось |\r\n|-----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\r\n| [/v1/posting/fbs/timeslot/set](#operation/PostingAPI_SetPostingTimeslot) | Добавили метод для переноса даты доставки отправления. |\r\n| [/v1/posting/fbs/timeslot/change-restrictions](#operation/PostingAPI_PostingTimeslotChangeRestrictions) | Добавили метод для получения доступных дат для переноса доставки и количества доступных переносов.|\r\n\r\n\r\n## 22 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|\r\n| [/v2/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehousesV2) | Добавили новую версию метода для получения отчёта по товарам и остаткам. |\r\n\r\n\r\n## 17 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------|----------------------------------------------------------|\r\n| [/v1/posting/global/etgb](#operation/PostingAPI_GetEtgb) | Добавили метод для получения таможенных деклараций ETGB. |\r\n\r\n## 16 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------|---------------------------------------------------------|\r\n| — | В разделе [**Пуш-уведомления → Как подключить**](#tag/push_start) обновили инструкцию: теперь подключать пуш-уведомления нужно в личном кабинете.

В раздел [**Уведомления, которые отправляет Ozon**](#tag/push_types) добавили описания новых типов уведомлений:
• [TYPE_NEW_MESSAGE](#section/Novoe-soobshenie-v-chate)
• [TYPE_UPDATE_MESSAGE](#section/Soobshenie-v-chate-izmeneno)
• [TYPE_MESSAGE_READ](#section/Vashe-soobshenie-prochitano)
• [TYPE_CHAT_CLOSED](#section/Chat-zakryt) |\r\n| [/v1/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatch)

[/v1/posting/fbs/package-label/get](#operation/PostingAPI_GetLabelBatch) | Добавили методы для асинхронного формирования этикеток. |\r\n\r\n## 14 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|\r\n| [/v2/returns/company/fbo](#operation/ReturnsAPI_GetReturnsCompanyFboV2)
[/v3/product/info/limit](#operation/ProductAPI_GetProductInfoLimit)
[/v1/analytics/stock_on_warehouses](#operation/AnalyticsAPI_AnalyticsGetStockOnWarehouses)
[/v1/analytics/item_turnover](#operation/AnalyticsAPI_AnalyticsItemTurnoverDataV3) | 1 апреля 2023 отключим эти методы. Добавили предупреждение в описание методов и в раздел [**Отключение методов**](#tag/Disable). |\r\n| /v1/auto/bookings/get
/v1/auto/bookings/list
/v1/auto/cbos/list
/v1/auto/modifications/list
/v1/auto/offers/create
/v1/auto/offers/list
/v1/auto/offers/update | Удалили раздел **Автомобили** из документации. |\r\n\r\n## 13 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------|-------------------------------------------------------------------------------------|\r\n| [/v4/product/info/limit](#operation/ProductAPI_GetUploadQuota) | Добавили метод для получения лимитов на ассортимент, создание и обновление товаров. |\r\n\r\n## 10 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|----------------------------------------------------------------------------|------------------------------------------------------------------------------|\r\n| [/v1/product/update/discount](#operation/ProductAPI_ProductUpdateDiscount) | \tДобавили метод для установки скидки на уценённые товары, продающиеся по схеме FBS. |\r\n| [/v2/posting/fbs/act/list](#operation/PostingAPI_FbsActList) | Обновили описание параметра `filter.status` в запросе. |\r\n| /v3/category/attribute | Добавили поле `result.attributes.category_dependent` в ответ метода. |\r\n\r\n## 9 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| — | Дополнили таблицу [«Частые ошибки»](#tag/Errors). Добавили описания ошибок для метода [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate). |\r\n| /v2/product/info
[/v1/product/info/list](#operation/ProductAPI_GetProductInfoListV2) | В ответы методов добавили поле `updated_at`: дата последнего обновления товара. |\r\n\r\n## 2 февраля 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|\r\n| /v2/product/import
[/v1/product/import-by-sku](#operation/ProductAPI_ImportProductsBySKU) | В запросах методов обновили описание параметра `offer_id`: максимальная длина передаваемого значения — 50 символов. |\r\n| [/v1/product/update/offer-id](#operation/ProductAPI_ProductUpdateOfferID) | В запросе метода обновили описание параметра `new_offer_id`: максимальная длина передаваемого значения — 50 символов. |\r\n\r\n## 20 января 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------|-------------------------------------------------------------------------------|\r\n| /v2/category/tree | В запросе метода обновили значение параметра `language` для китайского языка. |\r\n\r\n## 19 января 2023\r\n\r\n| Метод | Что изменилось |\r\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| [/v3/posting/multiboxqty/set](#operation/PostingAPI_PostingMultiBoxQtySetV3) | Добавили метод для передачи количества коробок в многокоробочных отправлениях. |\r\n| [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3) | В ответ метода добавили поля для получения информации о многокоробочных отправлениях: `result.is_multibox` и `result.multi_box_qty`. |\r\n| [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3)
[/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) | В ответы методов добавили поля для получения информации о многокоробочных отправлениях: `result.postings.is_multibox` и `result.postings.multi_box_qty`. |\r\n| [/v2/posting/fbs/act/get-postings](#operation/PostingAPI_ActPostingList) | В ответ метода добавили поле `result.multi_box_qty` для получения количества коробок в многокоробочных отправлениях. |\r\n\r\n## 10 января 2023\r\n\r\n| Метод | Что изменилось |\r\n|--------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|\r\n| — | Обновили срок подключения [пуш-уведомлений](#tag/push_start). |\r\n| /v1/supplier/orders/{orderId}/waybill_acceptance_results

/v1/supplier/waybill_acceptance_results/{waybillId} | Убрали методы из документации. |\r\n| /v3/category/attribute | В ответ метода добавили поле `result.attributes.is_aspect`. |\r\n| /v2/product/info
/v2/product/info/list | В ответы методов добавили поле `barcodes` для получения всех штрихкодов товара. |\r\n\r\n" + }, + { + "name": "BetaIntro", + "x-displayName": "Бета-методы Seller API", + "description": "Бета-методы Seller API — раздел с методами, которые находятся на стадии тестирования.\r\nТакие методы могут работать нестабильно, а их запросы и ответы могут меняться.\r\nОб изменениях в работе бета-методов уведомляем за неделю в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community?category_id=79).\r\nВ сообществе вы также можете оставить обратную связь по работе бета-методов и предложить свои идеи.\r\n\r\nБета-методы доступны по API-ключам в зависимости от вашей роли." + }, + { + "name": "BetaMethod", + "x-displayName": "Прочие методы" + }, + { + "name": "Digital", + "x-displayName": "Работа с цифровыми товарами", + "description": "[Подробнее о цифровых товарах в Базе знаний](https://seller-edu.ozon.ru/policies/restrictions/need-access/cifrovye-tovary)" + }, + { + "name": "Quants", + "x-displayName": "Работа с квантами" + }, + { + "name": "Questions&Answers", + "x-displayName": "Работа с вопросами и ответами" + }, + { + "name": "ReviewAPI", + "x-displayName": "Работа с отзывами" + }, + { + "name": "Errors", + "x-displayName": "Частые ошибки", + "description": "### Все методы\r\n\r\n| Ошибка | Описание |\r\n|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `Circle is open` | Если выполняется большое количество запросов, система блокирует работу метода. В течение нескольких минут метод начнет работать как обычно. |\r\n| `Internal error` | Сервер не успел обработать запрос. |\r\n| `Invalid Api-Key, please check the key and try again` | Неверный Api-Key: проверьте ключ и повторите попытку. |\r\n| `Api-key is deactivated, use another one or generate a new one` | Api-Key деактивирован: используйте другой ключ или сгенерируйте новый. |\r\n| `Api-Key is missing a required role for a method` | У Api-Key нет нужной роли для работы метода. |\r\n| `Api-Key is restricted to specific IP addresses` | Доступ к Api-Key разрешён только с определённых IP-адресов. |\r\n| `You have reached request rate limit per second` | Вы превысили лимит запросов: максимум 50 запросов в секунду с одного Client ID. Также учитываются ограничения конкретных методов. |\r\n\r\n### [/v4/fbs/posting/product/exemplar/validate](#operation/PostingAPI_FbsPostingProductExemplarValidate)\r\n\r\n\r\n| Ошибка | Описание |\r\n|-----------------------------------------------|-----------------------------------------------------------------------|\r\n| `GTD_MUST_BE_SPECIFIED_FOR_PRODUCT_COUNTRY` | Не указан номер ГТД. Если ГТД нет, передайте `is_gtd_absent: true`. |\r\n\r\n### [/v2/products/stocks](#operation/ProductAPI_ProductsStocksV2)\r\n\r\n| Ошибка | Описание |\r\n|----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `product_is_not_created` | Товар не прошёл модерацию, поэтому обновить остатки пока нельзя. Дождитесь статуса `price_sent` и попробуйте ещё раз. |\r\n| `offer_id_not_found` | Товара с таким артикулом нет в личном кабинете. |\r\n| `FLAMMABLE_ONLY_ON_SELF_OR_PROVIDER_DELIVERY` | Легковоспламеняющиеся товары можно продавать только со своего склада с доставкой самостоятельно или сторонней службой. Выберите другой склад или создайте новый и попробуйте ещё раз. |\r\n| `WAREHOUSE_NOT_FOUND` | Склад `warehouse_id` не найден. Проверьте наличие ошибок в ID склада и его статус — он должен быть активный. |\r\n| `PRODUCT_HAS_NOT_BEEN_TAGGED_YET` | Товар ещё не пометили тегами «КГТ» или «неКГТ», так как не указаны габариты товара или система для расстановки тегов ещё не обработала его. |\r\n| `NON_KGT_ON_KGT_WAREHOUSE` | Попытка установить или обновить остаток некрупногабаритного товара на КГТ складе. |\r\n| `PRICE_IS_NOT_SENT` | Товар ещё не создан или находится на стадии обновления. |\r\n| `MP_DELIVERY_ONLY_3PL_ERROR` | Товар нельзя размещать на складе с методом доставки «Ozon логистика». |\r\n| `TOO_MANY_REQUESTS` | Вы слишком часто обновляли остатки для одного артикула. Остатки для одного артикула можно обновлять не чаще одного раза в 30 секунд. | \r\n| `Stock is updated too frequently` | Вы пытаетесь обновить остаток одного и того же товара слишком часто. Обновлять остатки товара на одном складе можно только 1 раз в 30 секунд. Убедитесь, что ваша интеграция не обновляет остатки в фоновом режиме. |\r\n| `MULTIBOX_NOT_ALLOWED_FOR_FBS`\t | При работе по схеме FBS нельзя объединить товары из нескольких коробок в один товар. Удалите значение из поля `stock` и повторите попытку. |\r\n| `OVER_MAX_OVH_NON_KGT`\t | Через выбранный склад нельзя продавать крупногабаритные товары. Выберите другой склад или создайте новый и повторите попытку. | \r\n| `OVER_MAX_OVH_KGT`\t | Вес или габариты товара превышают максимальные значения для выбранного склада. Измените характеристики товара или выберите другой склад. | \r\n| `SOURCE_TYPE_NOT_FOUND`\t | У товара нет SKU. Проверьте, что товар создан и правильно настроен. | \r\n| `Request validation error: invalid ProductsStocksRequest.Stocks[0]: embedded message failed validation`\t | В запросе не указан идентификатор склада. Его можно узнать с помощью метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList). |\r\n| `STOCK_TOO_BIG`\t | Вы указали слишком большое значение для остатка товара. Укажите количество меньше миллиона и повторите запрос. | \r\n| `FLAMMABLE_ON_NON_KGT_WAREHOUSE` | \tЛегковоспламеняемые товары можно продавать только со склада для крупногабаритных товаров. Выберите другой склад или создайте новый. |\r\n| `NOT_FOUND_ERROR` | Товар не найден в личном кабинете. |\r\n| `SIZE_REQUIRED_FOR_NOT_UNIQUE_OFFER_ID` | Артикул совпадает с артикулом другого товара. Для обычного товара укажите параметр `quant_size = 1`, а для кванта — `quant_size = 2` и больше. |\r\n| `CB_DELIVERY_ONLY_FBP` | Этот товар доступен к продаже только с FBP склада. |\r\n\r\n### [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList)\r\n\r\n| Ошибка | Описание |\r\n|--------------------------------------|-------------------------------------------------------------------------------------------------------------|\r\n| `MAX_OFFSET_EXCEEDED` | Вы превысили лимит количества элементов в запросе. Убедитесь, что значение в поле `offset` не больше 20000. |\r\n\r\n### [/v4/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV4)\r\n\r\n| Ошибка | Описание |\r\n|--------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `TRANSITION_IS_NOT_POSSIBLE` | Вы передали некорректный порядок статусов заказов rFBS. |\r\n| `HAS_INCORRECT_TPL_INTEGRATION_TYPE` | Попытка передать статус на заказ rFBS при доставке интегрированной службой доставки. |\r\n| `POSTING_NOT_FOUND` | Заказа нет в личном кабинете партнёра. |\r\n| `POSTING_ALREADY_CANCELLED` | Заказ уже отменён. |\r\n| `POSTING_ALREADY_SHIPPED` | Заказ уже собран. |\r\n| `HAS_INCORRECT_STATUS` | У заказа некорректный статус. |\r\n| `HAS_INCORRECT_PRODUCT_QUANTITY` | Неправильное количество продуктов или неправильный SKU в запросе. |\r\n| `UNKNOW_PRODUCT`/`UNKNOWN_PRODUCT_DEFINED` | Указан неверный идентификатор товара в системе продавца — `product_id`. Проверьте, что в поле `product_id` вы указали идентификатор товара в системе Ozon — SKU.\t |\r\n| `EXEMPLAR_INFO_ALREADY_DEFINED` | Информация об экземплярах товара уже обновлена. Передавать данные повторно не нужно.\t |\r\n| `MANDATORY_MARK_REDUNDANT` | Для товара не нужно передавать код маркировки.\t |\r\n| `EXEMPLAR_INFO_NOT_FILLED_COMPLETELY` | Убедитесь, что вы передали всю информацию по экземплярам товаров в заказе. |\r\n| `SHIP_FBP_POSTINGS_IS_FORBIDDEN` | FBP постинг не требует сборки. |\r\n\r\n### [/v2/posting/fbs/package-label](#operation/PostingAPI_PostingFBSPackageLabel)\r\n\r\n| Ошибка | Описание |\r\n|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `The next postings aren't ready` | Товар ещё не готов к печати маркировки. |\r\n| `INVALID_ARGUMENT` | Переданы неверные значения в теле запроса. Печать этикетки возможна только для заказов со статусом «Ожидает отгрузки» — `awaiting_deliver`. Проверьте, что у отправления верный статус и что переданы корректные данные. |\r\n| `NO_POSTINGS_FOR_BATCH_DOWNLOAD` | В запросе нет заказов со статусом «Ожидает отгрузки». |\r\n\r\n### [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate) \r\n\r\n| Ошибка | Описание |\r\n|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `can't create carriage` | Перевозка ещё не готова к созданию. Добавьте акты на отгрузку. |\r\n| `Company has no FBS-warehouses` | У вас нет созданного склада FBS. |\r\n| `DELIVERY_METHOD_NOT_FOUND` | Вы передали некорректный идентификатор метода доставки — `delivery_method_id`. |\r\n| `first_mile_absent` | Для метода доставки не указан способ отгрузки. [Подробнее о настройке склада](https://seller-edu.ozon.ru/fbs/logistics-settings/sklady#как-активировать-склад) |\r\n| `first_mile_is_changing` | Обновляются настройки склада. Отгрузка станет доступна после обновления. |\r\n| `has_overflow` | Пункт перегружен. Выберите другой, чтобы сроки доставки не увеличивались. |\r\n| `has_postings_with_registration_error` | Часть отправлений не может попасть в акт из-за ошибки регистрации в сервисе доставки. |\r\n| `has_seller_returns_in_stock` | Заберите возвраты. |\r\n| `has_surge` | Пункт приёма переполнен и стоимость отгрузки временно увеличена. Для экономии выберите менее загруженный пункт. |\r\n| `new_postings_are_possible` | В отгрузку ещё могут попасть новые отправления. Используйте метод, когда закончится сегодняшнее время на сборку заказов. |\r\n| `no_postings` | Для выбранного метода нет доступных отправлений. |\r\n| `non_carriageable` | Отгрузка не требуется. |\r\n| `not_accepted_on_sc` | Обработайте отправления на вкладке [**Спорные**](https://seller.ozon.ru/app/postings/fbs?tab=arbitration) в личном кабинете. Чтобы добавить оправление в уже созданную отгрузку, отмените предыдущую и создайте новую. |\r\n| `not_packaged` | У вас есть отправления, которые нужно передать в доставку сегодня — добавьте их в отгрузку. |\r\n| `not_registered` | Регистрируем отправления в сервисе доставки. Сформируйте акт, когда все отправления получат статус `awaiting_deliver` — готов к отгрузке. |\r\n| `other` | Возникла ошибка. Обратитесь за помощью в поддержку. |\r\n| `outdated` | Указана прошедшая дата. |\r\n| `package_time_not_passed` | Время для формирования отгрузки ещё не наступило. |\r\n| `partial_carriage_formed` | Все частичные перевозки созданы. |\r\n| `partial_carriage_in_proccess` | Создайте ещё несколько частичных перевозок. |\r\n| `posting_statuses_not_ready` | Формируем отгрузку. Повторите запрос через несколько минут. |\r\n| `there_are_incomplete_carriages` | Есть незавершённые перевозки. |\r\n| `Trying set ContainersCount to not HasEntrustedAcceptance company` | Чтобы передать количество грузовых мест, подключитесь к доверительной приёмке. [Подробнее о доверительной приёмке](https://seller-edu.ozon.ru/fbs/ozon-logistika/doveritel-naya-priemka-gruzovogo-mesta) |\r\n| `will_be_partial_carriage` | Создайте несколько частичных перевозок. |\r\n| `Incorrect_carriage_status` | Перевозка ещё не сформировалась. Акт должен быть в статусе `sended` или `formed`. Чтобы получить статус, используйте метод [/v2/posting/fbs/act/list](#operation/PostingAPI_FbsActList). |\r\n\r\n### [/v1/product/import/prices](#operation/ProductAPI_ImportProductsPrices)\r\n\r\n| Ошибка | Описание |\r\n|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `invalid_cat egory_price` | Попытка установить слишком высокую или слишком низкую цену на товар. |\r\n| `discount_for_average_price_is_too_small` | Слишком маленькая скидка. Если цена после скидки от 400 до 10 000 рублей включительно, разница между ценами до и после скидки должна быть больше 5%. |\r\n| `discount_for_low_price_is_too_small` | Слишком маленькая скидка. Если цена после скидки ниже 400 рублей включительно, разница между ценами до и после скидки должна быть больше 20 рублей. |\r\n| `discount_too_big` | Слишком большая скидка. Разница между ценами до и после скидки должна быть менее 90%. |\r\n| `discount_for_top_price_is_too_small` | Слишком маленькая скидка. Если цена после скидки выше 10 000 рублей, разница между ценами до и после скидки должна быть больше 500 рублей. |\r\n| `price_negative` | Попытка установить отрицательную цену. |\r\n| `NOT_FOUND_ERROR` | Товара с таким идентификатором нет в личном кабинете. |\r\n\r\n### [/v3/product/import](#operation/ProductAPI_ImportProductsV3)\r\n\r\n| Ошибка | Описание |\r\n|----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `SPU_already_exists` | Товар с такими характеристиками уже существует. |\r\n| `\"Invalid_state\" - Product is not ready to supply` | Товар не готов к обновлению остатков. Возможно, товар не создан или аккаунт не активирован. |\r\n| `Incorrect_density` | Товар не прошёл проверку на плотность. Указанная вами плотность находится вне допустимого диапазона. Минимальное значение плотности — 0,001, максимальное — 13,55.

Плотность рассчитывается по формуле: вес × 1000 ÷ (высота × ширина × глубина).

Также проверьте, что вы используете корректные значения массы и объёма для вашего товара. |\r\n\r\n### [/v1/product/import/info](#operation/ProductAPI_GetImportProductsInfo) \r\n\r\n| Ошибка | Описание |\r\n|---------------------|-----------------------------------------------------------------------|\r\n| `result: items: 0` | Убедитесь, что указана корректная категория товара и проставлен НДС . |\r\n\r\n### [v2/posting/fbs/cancel](#operation/PostingAPI_CancelFbsPosting)\r\n\r\n| Ошибка | Описание |\r\n|--------------------------------|--------------------------------------------------|\r\n| `HAS_INCORRECT_CANCEL_REASON` | Указан неправильный идентификатор отмены заказа. |\r\n\r\n### [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet) и [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus)\r\n\r\n| Ошибка | Описание |\r\n|-----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `GTD_IS_REQUIRED_ONLY_FOR_LEGAL_CUSTOMER` | Грузовую таможенную декларацию должны передавать только юридическим лицам. |\r\n| `EXEMPLAR_ID does not belong to product PRODUCT_ID` | Идентификатор экземпляра `exemplar_id` не соответствует идентификатору товара `product_id`. Получите корректный `exemplar_id` методом [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet). |\r\n| `Posting must have 'awaiting_packaging' status` | У заказа некорректный статус. Для передачи данных или проверки статуса отправление должно быть в статусе «Ожидает сборки» — `awaiting_packaging`. |\r\n\r\n### [/v1/product/unarchive](#operation/ProductAPI_ProductUnarchive)\r\n\r\n| Ошибка | Описание |\r\n|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `restore limit exceeded` | Вы превысили лимит на восстановление карточек товаров, которые были архивированы автоматически. В сутки можно восстановить не больше 10 карточек. Лимит обновляется в 03:00 по московскому времени. |\r\n| `total limit exceeded` | Вы превысили лимит на ассортимент в личном кабинете. Отредактируйте активные карточки или перенесите часть из них в архив. Лимит на ассортимент можно узнать через метод [/v4/product/info/limit](#operation/ProductAPI_GetUploadQuota). |\r\n" + }, + { + "name": "push_intro", + "x-displayName": "Введение", + "description": "В разделе описано, как подключить пуш-уведомления, чтобы получать от Ozon на свой сервис информацию о событиях:\r\n- создании нового отправления,\r\n- отмене отправления,\r\n- изменении статуса отправления,\r\n- изменении даты доставки или отгрузки отправления.\r\n \r\nТакже можно получать информацию о сообщениях и уведомлениях, которые не были доставлены из-за недоступности вашего сервиса." + }, + { + "name": "push_start", + "x-displayName": "Как подключить", + "description": "

\r\n\r\n## Первичное подключение пуш-уведомлений\r\n\r\n1. В личном кабинете продавца перейдите в раздел [**Настройки → Уведомления**](https://seller.ozon.ru/app/settings/notifications-api).\r\n2. На вкладке **Push уведомления** включите получение уведомлений.\r\n3. Нажмите **Подключить**.\r\n4. Введите URL-адрес сервиса, на который будут отправляться уведомления. Например, https://www.example.com/api/method.\r\n5. Нажмите **Проверить**. Ozon отправит [запрос](#section/Zapros-dlya-proverki-soedineniya) для проверки соединения, на который должен ответить ваш сервис. Если соединение установлено, появится сообщение «Данный url доступен для подключения».\r\n6. Нажмите **Сохранить**.\r\n7. В блоке **Настройки подключения** в выпадающем списке **Типы уведомлений** выберите нужные.
[Описания уведомлений](#tag/push_types)\r\n\r\nОтключить уведомления можно в разделе [**Настройки → Уведомления**](https://seller.ozon.ru/app/settings/notifications-api) на вкладке **Push уведомления**.\r\n\r\n### Коды ошибок при подключении пуш-уведомлений\r\n\r\n| Ошибка | Описание | Решение |\r\n|--------------------------|------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|\r\n| REQUEST_ERROR | Запрос не отправлен, нет подключения по указанному адресу. | Проверьте, что ваш сервис работает. |\r\n| REQUEST_TIMEOUT | Превышено время ожидания запроса. | Увеличьте время ожидания запроса. |\r\n| SERVER_FAULT | Ваш сервис вернул внутреннюю ошибку сервера. | Изучите логи сервера, обновите серверное ПО, увеличьте выделенные ресурсы или обратитесь к администратору сервера. |\r\n| STATUS_CODE_NOT_OK | HTTP-статус ответа сервиса не равен 200. | Проверьте передаваемый код статуса. |\r\n| EMPTY_BODY | Тело ответа пустое или отсутствует. | Проверьте, что ответ на сервере сформирован правильно, и, что данные корректно передаются. |\r\n| INVALID_BODY | Некорректный формат тела ответа. | Проверьте формат ответа и убедитесь, что заголовок `Content-Type` равен `application/json`. |\r\n| INVALID_JSON | Ошибка при разборе или валидации JSON-данных. | Проверьте правильность JSON-данных и исправьте ошибки в синтаксисе. |\r\n| WRONG_RESULT_FIELD | Ваш сервис вернул тело ответа не по шаблону. | Проверьте, что формат ответа соответствует шаблону.
[Подробнее о шаблоне](#section/Zapros-dlya-proverki-soedineniya) |\r\n| WRONG_RESULT_TIME_FIELD | Некорректное поле `time` в теле ответа. | Проверьте формат времени в ответе. |\r\n\r\n## Изменить адрес сервиса\r\n\r\n1. В личном кабинете продавца перейдите в раздел [**Настройки → Интеграции**](https://seller.ozon.ru/app/settings/integrations).\r\n2. На вкладке **Push уведомления** нажмите **Редактировать**.\r\n3. Введите URL-адрес сервиса, на который будут отправляться уведомления.\r\n4. Нажмите **Проверить**. Ozon отправит [запрос](#section/Zapros-dlya-proverki-soedineniya) для проверки соединения, на который должен ответить ваш сервис. Если соединение установлено, появится сообщение «Данный url доступен для подключения».\r\n5. Нажмите **Сохранить**.\r\n\r\n## Запрос для проверки соединения\r\n\r\n### Что отправляет Ozon\r\n\r\n```json5\r\n{\r\n \"message_type\": \"string\",\r\n \"time\": \"2019-08-24T14:15:22Z\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|----------------|--------------------|-----------|--------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_PING`. |\r\n| `time` | string | date-time | Дата и время отправки уведомления в формате UTC. |\r\n\r\n### Что должен отвечать ваш сервис\r\n\r\n#### Если уведомление получено успешно\r\n\r\nПри успешной обработке уведомления сервис должен вернуть ответ с кодом HTTP 200:\r\n\r\n```json5\r\n{\r\n \"version\": \"string\",\r\n \"name\": \"string\",\r\n \"time\": \"2019-08-24T14:15:22Z\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|------------|---------------|--------|----------------------------------------------------------|\r\n| `version` | string | — | Версия приложения. |\r\n| `name` | string | — | Название приложения. |\r\n| `time` | string | date-time | Дата и время начала обработки уведомления в формате UTC. |\r\n\r\n#### Если произошла ошибка\r\n\r\nПри ошибке во время обработки уведомления сервис должен вернуть ответ с кодом HTTP из групп 4xx или 5xx:\r\n\r\n```json5\r\n{\r\n \"error\": {\r\n \"code\": \"ERROR_UNKNOWN\",\r\n \"message\": \"ошибка\",\r\n \"details\": null\r\n }\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------|--------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `error` | object | — | Информация об ошибке. |\r\n| `code` | string | — | Код ошибки:
• `ERROR_UNKNOWN` — неизвестная ошибка.
• `ERROR_PARAMETER_VALUE_MISSED` — не указано значение одного или нескольких параметров.
• `ERROR_REQUEST_DUPLICATED` — дублирующийся запрос. |\r\n| `message` | string | — | Детальное описание ошибки. |\r\n| `details` | string | — | Дополнительная информация. |" + }, + { + "name": "push_resending", + "x-displayName": "Повторная отправка уведомлений", + "description": "### Интервалы повторной отправки\r\n\r\nЕсли уведомление не доставлено, через несколько секунд система попытается отправить запрос ещё несколько раз. \r\nИнтервал между попытками будет постепенно увеличиваться. \r\nКогда он достигнет максимального значения в 10 минут, будет ещё 5 попыток каждые 10 минут.\r\n\r\n### Автоматическая приостановка отправки уведомлений\r\n\r\nЕсли сообщение по-прежнему не получится доставить, попытки отправки запроса прекратятся.\r\n\r\nОтправка всех уведомлений будет приостановлена, если соблюдено хотя бы одно из условий:\r\n- сервис недоступен;\r\n- сервис возвращает ошибки в течение 24 часов;\r\n- ответов `200` меньше половины от всех уведомлений;\r\n- время обработки уведомлений больше 5 секунд.\r\n\r\nЧтобы снова получать уведомления, в личном кабинете продавца повторно [подтвердите URL-адрес сервиса](#tag/push_start)." + }, + { + "name": "push_types", + "x-displayName": "Уведомления, которые отправляет Ozon", + "description": "
\r\n\r\nДля каждого из типов уведомлений Ozon отправляет REST-запросы на адрес вашего сервиса. Ваш сервис [должен отвечать](#tag/service_response) по стандартам REST API.\r\n\r\n| Тип | Назначение |\r\n|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|\r\n| [TYPE_PING](#section/Zapros-dlya-proverki-soedineniya) | Проверка статуса готовности сервиса при первичном подключении и периодически после подключения |\r\n| [TYPE_NEW_POSTING](#section/Novoe-otpravlenie) | Новое отправление |\r\n| [TYPE_POSTING_CANCELLED](#section/Otmena-otpravleniya) | Отмена отправления |\r\n| [TYPE_STATE_CHANGED](#section/Izmenenie-statusa-otpravleniya) | Изменение статуса отправления |\r\n| [TYPE_CUTOFF_DATE_CHANGED](#section/Izmenenie-daty-otgruzki-otpravleniya) | Изменение даты отгрузки отправления |\r\n| [TYPE_DELIVERY_DATE_CHANGED](#section/Izmenenie-daty-dostavki-otpravleniya) | Изменение даты доставки отправления |\r\n| [TYPE_CREATE_OR_UPDATE_ITEM](#section/Sozdanie-ili-obnovlenie-tovara) | Создание и обновление товара или ошибка в процессе |\r\n| [TYPE_CREATE_ITEM](#section/Sozdanie-tovara) | Создание товара или ошибка при его создании |\r\n| [TYPE_UPDATE_ITEM](#section/Obnovlenie-tovara) | Обновление товара или ошибка при обновлении |\r\n| [TYPE_PRICE_INDEX_CHANGED](#section/Izmenenie-cenovogo-indeksa-tovara) | Изменение ценового индекса товара |\r\n| [TYPE_STOCKS_CHANGED](#section/Izmenenie-ostatkov-na-skladah-prodavca) | Изменение остатков на складах продавца |\r\n| [TYPE_NEW_MESSAGE](#section/Novoe-soobshenie-v-chate) | Новое сообщение в чате |\r\n| [TYPE_UPDATE_MESSAGE](#section/Soobshenie-v-chate-izmeneno) | Изменение сообщения в чате |\r\n| [TYPE_MESSAGE_READ](#section/Vashe-soobshenie-prochitano) | Ваше сообщение прочитано покупателем или поддержкой |\r\n| [TYPE_CHAT_CLOSED](#section/Chat-zakryt) | Чат закрыт |\r\n\r\n## Новое отправление\r\n\r\n\r\n\r\nУведомления приходят только для FBS и rFBS отправлений:\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_NEW_POSTING\",\r\n \"posting_number\": \"24219509-0020-1\",\r\n \"products\": [\r\n {\r\n \"sku\": 147451959,\r\n \"quantity\": 2\r\n }\r\n ],\r\n \"in_process_at\": \"2021-01-26T06:56:36.294Z\",\r\n \"warehouse_id\": 18850503335000,\r\n \"seller_id\": 15\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|-------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_NEW_POSTING`. |\r\n| `posting_number` | string | — | Номер отправления. |\r\n| `products` | array | — | Информация о товарах. |\r\n| `sku` | integer | int64 | Идентификатор товара в системе Ozon — SKU. |\r\n| `quantity` | integer | int64 | Количество товара. |\r\n| `in_process_at` | string | date-time | Дата и время начала обработки отправления в формате UTC. |\r\n| `warehouse_id` | integer | int64 | Идентификатор склада, на котором хранятся товары для этого отправления. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n## Отмена отправления\r\n\r\nУведомления приходят только для FBS и rFBS отправлений:\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_POSTING_CANCELLED\",\r\n \"posting_number\": \"24219509-0020-1\",\r\n \"products\": [\r\n {\r\n \"sku\": 147451959,\r\n \"quantity\": 1\r\n }\r\n ],\r\n \"old_state\": \"posting_transferred_to_courier_service\",\r\n \"new_state\": \"posting_canceled\",\r\n \"changed_state_date\": \"2021-01-26T06:56:36.294Z\",\r\n \"reason\": {\r\n \"id\": 0,\r\n \"message\": \"string\"\r\n },\r\n \"warehouse_id\": 0,\r\n \"seller_id\": 15\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|--------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_POSTING_CANCELLED`. |\r\n| `posting_number` | string | — | Номер отправления. |\r\n| `products` | array | — | Информация о товарах. |\r\n| `sku` | integer | int64 | Идентификатор товара в системе Ozon — SKU. |\r\n| `quantity` | integer | int64 | Количество товара. |\r\n| `old_state` | string | — | Предыдущий статус отправления. |\r\n| `new_state` | string | — | Новый статус отправления: `posting_canceled` — отменено. |\r\n| `changed_state_date` | string | date-time | Дата и время изменения статуса отправления в формате UTC. |\r\n| `reason` | object | — | Информация о причине отмены. | \r\n| `id` | integer | int64 | Идентификатор причины отмены. |\r\n| `message` | string | — | Причина отмены. |\r\n| `warehouse_id` | integer | int64 | Идентификатор склада, на котором хранятся товары для этого отправления. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n### Статусы отправлений\r\n\r\n- `posting_acceptance_in_progress` — идёт приёмка,\r\n- `posting_created` — создано,\r\n- `posting_transferring_to_delivery` — передаётся в доставку,\r\n- `posting_in_carriage` — в перевозке,\r\n- `posting_not_in_carriage` — не добавлен в перевозку,\r\n- `posting_in_client_arbitration` — клиентский арбитраж доставки,\r\n- `posting_on_way_to_city` — на пути в город,\r\n- `posting_transferred_to_courier_service` — передаётся курьеру,\r\n- `posting_in_courier_service` — курьер в пути,\r\n- `posting_on_way_to_pickup_point` — на пути в пункт выдачи,\r\n- `posting_in_pickup_point` — в пункте выдачи,\r\n- `posting_conditionally_delivered` — условно доставлено,\r\n- `posting_driver_pick_up` — у водителя,\r\n- `posting_not_in_sort_center` — не принят на сортировочном центре.\r\n\r\n## Изменение статуса отправления\r\n\r\nСоответствие статусных моделей Seller API и статусов пуш-модели.\r\n\r\n| Seller API | | Push-модель | |\r\n|-------------------------|-------------------------------------|------------------------------------------|-------------------------------------|\r\n| **Статус** | **Описание** | **Статус** | **Описание** |\r\n| `acceptance_in_progress`| Идёт приёмка. | `posting_acceptance_in_progress` | Идёт приёмка. |\r\n| `awaiting_approve` | Ожидает подтверждения. | `posting_created` | Создана. |\r\n| `awaiting_packaging` | Ожидает упаковки. | `posting_created` | Создана. |\r\n| `awaiting_registration` | Ожидает регистрации. | `posting_awaiting_registration` | Ожидает регистрации. |\r\n| `awaiting_deliver` | Ожидает отгрузки. | `posting_transferring_to_delivery` | Передаётся в доставку. |\r\n| | | `posting_in_carriage` | В перевозке. |\r\n| | | `posting_not_in_carriage` | Не добавлен в перевозку. |\r\n| `arbitration` | Арбитраж. | `posting_in_arbitration` | Арбитраж. |\r\n| `client_arbitration` | Клиентский арбитраж доставки. | `posting_in_client_arbitration` | Клиентский арбитраж. |\r\n| `delivering` | Доставляется. | `posting_on_way_to_city` | На пути в ваш город. |\r\n| | | `posting_transferred_to_courier_service` | Передаётся курьеру. |\r\n| | | `posting_in_courier_service` | Курьер в пути. |\r\n| | | `posting_on_way_to_pickup_point` | На пути в пункт выдачи. |\r\n| | | `posting_in_pickup_point` | В пункте выдачи. |\r\n| | | `posting_conditionally_delivered` | Условно доставлено. |\r\n| `driver_pickup` | У водителя. | `posting_driver_pick_up` | У водителя. |\r\n| `delivered` | Доставлено. | `posting_delivered` | Доставлено. |\r\n| | | `posting_received` | Получено. |\r\n| `cancelled` | Отменено. | `posting_canceled` | Отменено. |\r\n| `not_accepted` | Не принято на сортировочном центре. | `posting_not_in_sort_center` | Не принято на сортировочном центре. |\r\n\r\nУведомления приходят только для FBS и rFBS отправлений.\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_STATE_CHANGED\",\r\n \"posting_number\": \"24219509-0020-2\",\r\n \"new_state\": \"posting_delivered\",\r\n \"changed_state_date\": \"2021-02-02T15:07:46.765Z\",\r\n \"warehouse_id\": 0,\r\n \"seller_id\": 15\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|--------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_STATE_CHANGED`. |\r\n| `posting_number` | string | — | Номер отправления. |\r\n| `new_state` | string | — | Новый статус отправления. |\r\n| `changed_state_date` | string | date-time | Дата и время изменения статуса отправления в формате UTC. |\r\n| `warehouse_id` | integer | int64 | Идентификатор склада, на котором хранятся товары для этого отправления. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n### Статусы отправлений\r\n\r\n- `posting_acceptance_in_progress` — идёт приёмка,\r\n- `posting_transferring_to_delivery` — передаётся в доставку,\r\n- `posting_in_carriage` — в перевозке,\r\n- `posting_not_in_carriage` — не добавлен в перевозку,\r\n- `posting_in_arbitration` — арбитраж,\r\n- `posting_in_client_arbitration` — клиентский арбитраж доставки,\r\n- `posting_on_way_to_city` — на пути в город,\r\n- `posting_transferred_to_courier_service` — передаётся курьеру,\r\n- `posting_in_courier_service` — курьер в пути,\r\n- `posting_on_way_to_pickup_point` — на пути в пункт выдачи,\r\n- `posting_in_pickup_point` — в пункте выдачи,\r\n- `posting_conditionally_delivered` — условно доставлено,\r\n- `posting_driver_pick_up` — у водителя,\r\n- `posting_delivered` — доставлено,\r\n- `posting_not_in_sort_center` — не принят на сортировочном центре.\r\n\r\n## Изменение даты отгрузки отправления\r\n\r\n\r\n
\r\n\r\n\r\nУведомления приходят только для FBS и rFBS отправлений:\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_CUTOFF_DATE_CHANGED\",\r\n \"posting_number\": \"24219509-0020-2\",\r\n \"new_cutoff_date\": \"2021-11-24T07:00:00Z\",\r\n \"old_cutoff_date\": \"2021-11-21T10:00:00Z\",\r\n \"warehouse_id\": 0,\r\n \"seller_id\": 15\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|-------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_CUTOFF_DATE_CHANGED`. |\r\n| `posting_number` | string | — | Номер отправления. |\r\n| `new_cutoff_date` | string | date-time | Новые дата и время отгрузки в формате UTC. |\r\n| `old_cutoff_date` | string | date-time | Предыдущие дата и время отгрузки в формате UTC. |\r\n| `warehouse_id` | integer | int64 | Идентификатор склада, на котором хранятся товары для этого отправления. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n## Изменение даты доставки отправления\r\n\r\nУведомление, которое отправляет Ozon:\r\n\r\n\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_DELIVERY_DATE_CHANGED\",\r\n \"posting_number\": \"24219509-0020-2\",\r\n \"new_delivery_date_begin\": \"2021-11-24T07:00:00Z\",\r\n \"new_delivery_date_end\": \"2021-11-24T16:00:00Z\",\r\n \"old_delivery_date_begin\": \"2021-11-21T10:00:00Z\",\r\n \"old_delivery_date_end\": \"2021-11-21T19:00:00Z\",\r\n \"warehouse_id\": 0,\r\n \"seller_id\": 15\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|--------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_DELIVERY_DATE_CHANGED`. |\r\n| `posting_number` | string | — | Номер отправления. |\r\n| `new_delivery_date_begin` | string | date-time | Новые дата и время начала доставки в формате UTC. |\r\n| `new_delivery_date_end` | string | date-time | Новые дата и время окончания доставки в формате UTC. |\r\n| `old_delivery_date_begin` | string | date-time | Предыдущие дата и время начала доставки в формате UTC. |\r\n| `old_delivery_date_end` | string | date-time | Предыдущие дата и время окончания доставки в формате UTC. |\r\n| `warehouse_id` | integer | int64 | Идентификатор склада, на котором хранятся товары для этого отправления. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n## Создание или обновление товара\r\n\r\nУведомление, которое отправляет Ozon:\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_CREATE_OR_UPDATE_ITEM\",\r\n \"seller_id\": 0,\r\n \"offer_id\": \"string\",\r\n \"product_id\": 0,\r\n \"is_error\": false,\r\n \"changed_at\": \"2022-09-01T14:15:22Z\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|-------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n| `message_type` | string | — | Тип уведомления — `TYPE_CREATE_OR_UPDATE_ITEM`. |\r\n| `offer_id` | string | — | Идентификатор товара в системе продавца — артикул. |\r\n| `product_id` | integer | int64 | Идентификатор товара в системе продавца — `product_id`. |\r\n| `is_error` | boolean | — | Признак, что при создании или обновлении товара возникли ошибки:
• `true` — были ошибки, товар не создан или не обновлён;
• `false` — товар создан или обновлён без ошибок. |\r\n| `changed_at` | string | date-time | Дата и время изменения. |\r\n\r\n## Создание товара\r\n\r\n\r\n\r\nУведомление, которое отправляет Ozon:\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_CREATE_ITEM\",\r\n \"seller_id\": 0,\r\n \"offer_id\": \"string\",\r\n \"product_id\": 0,\r\n \"is_error\": false,\r\n \"changed_at\": \"2021-09-01T14:15:22Z\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|-------------|-----------|---------------------------------------------------------------------------------------------------------------------------------------|\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n| `message_type` | string | — | Тип уведомления — `TYPE_CREATE_ITEM`. |\r\n| `offer_id` | string | — | Идентификатор товара в системе продавца — артикул. |\r\n| `product_id` | integer | int64 | Идентификатор товара в системе продавца — `product_id`. |\r\n| `is_error` | boolean | — | Признак, что при создании товара возникли ошибки:
• `true` — были ошибки, товар не создан;
• `false` — товар создан без ошибок. |\r\n| `changed_at` | string | date-time | Дата и время изменения. |\r\n\r\n## Обновление товара\r\n\r\n\r\n\r\nУведомление, которое отправляет Ozon:\r\n\r\n```\r\n{\r\n \"message_type\": \"TYPE_UPDATE_ITEM\",\r\n \"seller_id\": 0,\r\n \"offer_id\": \"string\",\r\n \"product_id\": 0,\r\n \"is_error\": false, \r\n \"changed_at\": \"2021-09-01T14:15:22Z\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|-------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------|\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n| `message_type` | string | — | Тип уведомления — `TYPE_UPDATE_ITEM`. |\r\n| `offer_id` | string | — | Идентификатор товара в системе продавца — артикул. |\r\n| `product_id` | integer | int64 | Идентификатор товара в системе продавца — `product_id`. |\r\n| `is_error` | boolean | — | Признак, что при обновлении товара возникли ошибки:
• `true` — были ошибки, товар не создан;
• `false` — товар создан без ошибок. |\r\n| `changed_at` | string | date-time | Дата и время изменения. |\r\n\r\n## Изменение ценового индекса товара\r\n\r\nУведомление, которое отправляет Ozon:\r\n\r\n```\r\n{\r\n \"seller_id\": 0,\r\n \"message_type\": \"string\",\r\n \"updated_at\":\"2022-06-21T05:52:46.648533678Z\",\r\n \"sku\": 0,\r\n \"product_id\": 0,\r\n \"price_index\": 0\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|-----------------------------------------------|\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n| `message_type` | string | — | Тип уведомления — `TYPE_PRICE_INDEX_CHANGED`. |\r\n| `updated_at` | string | date-time | Дата и время изменения ценового индекса. |\r\n| `sku` | integer | int64 | Идентификатор товара в системе Ozon — SKU. |\r\n| `product_id` | integer | int64 | Идентификатор товара в системе продавца — `product_id`. |\r\n| `price_index` | integer | int64 | Ценовой индекс. |\r\n\r\n\r\n## Изменение остатков на складах продавца\r\n\r\nУведомление, которое отправляет Ozon:\r\n\r\n```\r\n{\r\n \"message_type\": \"string\",\r\n \"seller_id\": 0,\r\n \"items\": [\r\n {\r\n \"product_id\": 0,\r\n \"sku\": 0,\r\n \"updated_at\": \"2021-09-01T14:15:22Z\",\r\n \"stocks\": [\r\n {\r\n \"warehouse_id\": 0,\r\n \"present\": 0,\r\n \"reserved\": 0\r\n }\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|-------------------------------------------------|\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n| `message_type` | string | — | Тип уведомления — `TYPE_STOCKS_CHANGED`. |\r\n| `items` | array | — | Массив с данными товаров. |\r\n| `updated_at` | string | date-time | Дата и время изменения. |\r\n| `sku` | integer | int64 | SKU товара при работе по схемам FBS или rFBS. |\r\n| `product_id` | integer | int64 | Идентификатор товара в системе продавца — `product_id`. |\r\n| `stocks` | array | — | Массив с данными по остаткам товара. |\r\n| `warehouse_id` | integer | int64 | Идентификатор склада. |\r\n| `present` | integer | int64 | Общее количество товара на складе. |\r\n| `reserved` | integer | int64 | Количество зарезервированных товаров на складе. |\r\n\r\n## Новое сообщение в чате\r\n\r\n```\r\n{ \r\n \"message_type\": \"TYPE_NEW_MESSAGE\",\r\n \"chat_id\": \"b646d975-0c9c-4872-9f41-8b1e57181063\",\r\n \"chat_type\": \"Buyer_Seller\",\r\n \"message_id\": \"3000000000817031942\",\r\n \"created_at\": \"2022-07-18T20:58:04.528Z\",\r\n \"user\": {\r\n \"id\": \"115568\",\r\n \"type\": \"Сustomer\"\r\n },\r\n \"data\": [\r\n \"Текст сообщения\"\r\n ], \r\n \"seller_id\": \"7\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|------------------------------------------|-----------------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_NEW_MESSAGE`. |\r\n| `chat_id` | string | — | Идентификатор чата. |\r\n| `chat_type` | string | — | Тип чата:
• `Seller_Support` — чат с поддержкой.
• `Buyer_Seller` — чат с покупателем.
• `Seller_Notification` — уведомления Ozon. |\r\n| `message_id` | string | — | Идентификатор сообщения. |\r\n| `created_at` | string | date-time | Дата создания сообщения. |\r\n| `user` | object | — | Информация об отправителе сообщения. |\r\n| `id` | string | — | Идентификатор отправителя. |\r\n| `type` | string | — | Тип отправителя:
• `Customer` — покупатель.
• `Support` — поддержка.
• `NotificationUser` — Ozon. |\r\n| `data` | array of string | — | Массив с содержимым сообщения в формате Markdown. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n## Сообщение в чате изменено\r\n\r\n```\r\n{ \r\n \"message_type\": \"TYPE_UPDATE_MESSAGE\",\r\n \"chat_id\": \"b646d975-0c9c-4872-9f41-8b1e57181063\",\r\n \"chat_type\": \"Buyer_Seller\",\r\n \"message_id\": \"3000000000817031942\",\r\n \"created_at\": \"2022-07-18T20:58:04.528Z\",\r\n \"updated_at\": \"2022-07-18T20:59:04.528Z\",\r\n \"user\": {\r\n \"id\": \"115568\",\r\n \"type\": \"Сustomer\"\r\n },\r\n \"data\": [\r\n \"Текст сообщения\"\r\n ], \r\n \"seller_id\": \"7\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|-----------------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_UPDATE_MESSAGE`. |\r\n| `chat_id` | string | — | Идентификатор чата. |\r\n| `chat_type` | string | — | Тип чата:
• `Seller_Support` — чат с поддержкой.
• `Buyer_Seller` — чат с покупателем.
• `Seller_Notification` — уведомления Ozon. |\r\n| `message_id` | string | — | Идентификатор сообщения. |\r\n| `created_at` | string | date-time | Дата создания сообщения. |\r\n| `updated_at` | string | date-time | Дата изменения сообщения. |\r\n| `user` | object | — | Информация об отправителе сообщения. |\r\n| `id` | string | — | Идентификатор отправителя. |\r\n| `type` | string | — | Тип отправителя:
• `Customer` — покупатель.
• `Support` — поддержка.
• `NotificationUser` — Ozon. |\r\n| `data` | array of string | — | Массив с содержимым сообщения в формате Markdown. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n## Ваше сообщение прочитано\r\n\r\n```\r\n{ \r\n \"message_type\": \"TYPE_MESSAGE_READ\",\r\n \"chat_id\": \"b646d975-0c9c-4872-9f41-8b1e57181063\",\r\n \"chat_type\": \"Buyer_Seller\",\r\n \"message_id\": \"3000000000817031942\",\r\n \"created_at\": \"2022-07-18T20:58:04.528Z\", \r\n \"user\": {\r\n \"id\": \"115568\",\r\n \"type\": \"Сustomer\"\r\n },\r\n \"last_read_message_id\": \"3000000000817031942\",\r\n \"seller_id\": \"7\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_MESSAGE_READ`. |\r\n| `chat_id` | string | — | Идентификатор чата. |\r\n| `chat_type` | string | — | Тип чата:
• `Seller_Support` — чат с поддержкой.
• `Buyer_Seller` — чат с покупателем.
• `Seller_Notification` — уведомления Ozon. |\r\n| `message_id` | string | — | Идентификатор сообщения. |\r\n| `created_at` | string | date-time | Дата создания сообщения. |\r\n| `user` | object | — | Информация о пользователе, прочитавшем сообщение. |\r\n| `id` | string | — | Идентификатор пользователя. |\r\n| `type` | string | — | Тип пользователя:
• `Customer` — покупатель.
• `Support` — поддержка.
• `NotificationUser` — Ozon. |\r\n| `last_read_message_id` | string | — | Идентификатор последнего прочитанного сообщения. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |\r\n\r\n## Чат закрыт\r\n\r\n```\r\n{ \r\n \"message_type\": \"TYPE_CHAT_CLOSED\",\r\n \"chat_id\": \"b646d975-0c9c-4872-9f41-8b1e57181063\",\r\n \"chat_type\": \"Buyer_Seller\",\r\n \"user\": {\r\n \"id\": \"115568\",\r\n \"type\": \"Сustomer\"\r\n },\r\n \"seller_id\": \"7\"\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `message_type` | string | — | Тип уведомления — `TYPE_CHAT_CLOSED`. |\r\n| `chat_id` | string | — | Идентификатор чата. |\r\n| `chat_type` | string | — | Тип чата:
• `Seller_Support` — чат с поддержкой.
• `Buyer_Seller` — чат с покупателем.
• `Seller_Notification` — уведомления Ozon. |\r\n| `user` | object | — | Информация о пользователе, закрывшем чат. |\r\n| `id` | string | — | Идентификатор пользователя. |\r\n| `type` | string | — | Тип пользователя:
• `Customer` — покупатель.
• `Support` — поддержка.
• `NotificationUser` — Ozon. |\r\n| `seller_id` | integer | int64 | Идентификатор продавца. |" + }, + { + "name": "service_response", + "x-displayName": "Ответ вашего сервиса", + "description": "## Если уведомление получено успешно\r\n\r\nПри успешной обработке уведомления сервис должен вернуть ответ с кодом HTTP 200:\r\n\r\n```json5\r\n{\r\n \"result\": true\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|---------|--------|-----------------------|\r\n| `result` | boolean | — | Уведомление получено. |\r\n\r\n\r\n## Если произошла ошибка\r\n\r\nПри ошибке во время обработки уведомления сервис должен вернуть ответ с кодом HTTP из групп 4xx или 5xx:\r\n\r\n```json5\r\n{\r\n \"error\": {\r\n \"code\": \"ERROR_UNKNOWN\",\r\n \"message\": \"ошибка\",\r\n \"details\": null\r\n }\r\n}\r\n```\r\n\r\n|
Параметр
| Тип | Формат | Описание |\r\n|-----------------------------------------|--------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| `error` | object | — | Информация об ошибке. |\r\n| `code` | string | — | Код ошибки:
• `ERROR_UNKNOWN` — неизвестная ошибка.
• `ERROR_PARAMETER_VALUE_MISSED` — не указано значение одного или нескольких параметров.
• `ERROR_REQUEST_DUPLICATED` — дублирующийся запрос. |\r\n| `message` | string | — | Детальное описание ошибки. |\r\n| `details` | string | — | Дополнительная информация. |" + } + ], + "paths": { + "/v1/description-category/tree": { + "post": { + "tags": [ + "CategoryAPI" + ], + "summary": "Дерево категорий и типов товаров", + "description": "Возвращает категории и типы для товаров в виде дерева.\n\nСоздание товаров доступно только в категориях последнего уровня, сравните именно их с категориями на своей площадке.\nКатегории не создаются по запросу пользователя.\n\n\n", + "operationId": "DescriptionCategoryAPI_GetTree", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetTreeRequest" + }, + "example": { + "language": "DEFAULT" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Дерево категорий", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetTreeResponse" + }, + "example": { + "result": [ + { + "description_category_id": 17027492, + "category_name": "Канцелярские товары", + "disabled": false, + "children": [ + { + "description_category_id": 17029016, + "category_name": "Печати и штампы", + "disabled": false, + "children": [ + { + "type_name": "Пистолет-маркиратор", + "type_id": 970778135, + "disabled": false, + "children": [] + } + ] + } + ] + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/description-category/attribute": { + "post": { + "tags": [ + "CategoryAPI" + ], + "summary": "Список характеристик категории", + "description": "Получение характеристик для указанных категории и типа товара.\n\nЕсли у `dictionary_id` значение `0`, у атрибута нет вложенных справочников.\nЕсли значение другое, то справочники есть. Запросите их методом [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues).\n", + "operationId": "DescriptionCategoryAPI_GetAttributes", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetAttributesRequest" + }, + "example": { + "description_category_id": 200000933, + "language": "DEFAULT", + "type_id": 93080 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Характеристики категории", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetAttributesResponse" + }, + "example": { + "result": [ + { + "id": 31, + "attribute_complex_id": 0, + "name": "Бренд в одежде и обуви", + "description": "Укажите наименование бренда, под которым произведён товар. Если товар не имеет бренда, используйте значение \"Нет бренда\"", + "type": "string", + "is_collection": false, + "is_required": true, + "is_aspect": false, + "max_value_count": 0, + "group_name": "", + "group_id": 0, + "dictionary_id": 28732849, + "category_dependent": true, + "complex_is_collection": true + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/description-category/attribute/values": { + "post": { + "tags": [ + "CategoryAPI" + ], + "summary": "Справочник значений характеристики", + "description": "Возвращает справочник значений характеристики.\n\nУзнать, есть ли вложенный справочник, можно через метод [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes). \n", + "operationId": "DescriptionCategoryAPI_GetAttributeValues", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetAttributeValuesRequest" + }, + "example": { + "attribute_id": 85, + "description_category_id": 17054869, + "language": "DEFAULT", + "last_value_id": 0, + "limit": 100, + "type_id": 97311 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Справочник характеристик", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetAttributeValuesResponse" + }, + "example": { + "result": [ + { + "id": 5055881, + "value": "Sunshine", + "info": "", + "picture": "https://cdn1.ozone.ru/s3/multimedia-i/6010930878.jpg" + }, + { + "id": 5056737, + "value": "Essence", + "info": "Красота и здоровье", + "picture": "https://cdn1.ozone.ru/s3/multimedia-v/6088253599.jpg" + } + ], + "has_next": true + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/description-category/attribute/values/search": { + "post": { + "tags": [ + "CategoryAPI" + ], + "summary": "Поиск по справочным значениям характеристики", + "description": "Возвращает справочные значения характеристики по заданному значению `value` в запросе.\n\nУзнать, есть ли вложенный справочник, можно через метод [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes).\n", + "operationId": "DescriptionCategoryAPI_SearchAttributeValues", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SearchAttributeValuesRequest" + }, + "example": { + "attribute_id": 85, + "description_category_id": 17054869, + "limit": 100, + "type_id": 97311, + "value": "Name" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Справочные значения характеристики.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SearchAttributeValuesResponse" + } + } + } + }, + "default": { + "description": "Ошибка.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v3/product/import": { + "post": { + "summary": "Создать или обновить товар", + "description": "\nМетод для создания товаров и обновления информации о них.\n\nВ сутки можно создать или обновить определённое количество товаров. Чтобы узнать лимит, используйте\n[/v4/product/info/limit](#operation/ProductAPI_GetUploadQuota). Если количество загрузок и обновлений товаров\nпревысит лимит, появится ошибка `item_limit_exceeded`.\n\nВ одном запросе можно передать до 100 товаров. Каждый товар — это отдельный элемент в массиве `items`. Укажите\nвсю информацию о товаре: его характеристики, штрихкод, изображения, габариты, цену и валюту цены.\n\nПри обновлении товара передайте в запросе всю информацию о нём.\n\nУказанная валюта должна совпадать с той, которая установлена в настройках личного кабинета. По умолчанию передаётся `RUB` — российский рубль.\nНапример, если у вас установлена валюта юань, передавайте значение `CNY`, иначе вернётся ошибка.\n\nТовар не будет создан или обновлён, если вы заполните неправильно или не укажете:\n - **Обязательные характеристики**: характеристики отличаются для разных категорий — их можно посмотреть в [Базе знаний продавца](https://docs.ozon.ru/global/products/requirements/product-info/product-characteristics/#обязательные-характеристики) или получить методом [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes).\n - **Реальные объёмно-весовые характеристики**: `depth`, `width`, `height`, `dimension_unit`, `weight`, `weight_unit`. Не пропускайте эти параметры в запросе и не указывайте 0.\n\nДля некоторых характеристик можно использовать HTML-теги.\n\nПосле модерации товар появится в вашем личном кабинете, но не будет виден пользователям, пока вы не выставите его\nна продажу.\n\nКаждый товар в запросе — отдельный элемент массива `items`.\n\nЧтобы объединить две карточки, для каждой передайте `9048` в массиве `attributes`. Все атрибуты в этих карточках, кроме размера или цвета, должны совпадать.\n\n## Загрузка изображений\n\nДля загрузки передайте в запросе ссылки на изображения в общедоступном облачном хранилище.\nФормат изображения по ссылке — JPG или PNG.\n\nИзображения в массиве `images` располагайте в соответствии с желаемым порядком на сайте. Для загрузки главного\nизображения товара используйте параметр `primary_image`. Если не передать значение `primary_image`, главным будет\nпервое изображение в массиве `images`.\n\nДля каждого товара вы можете загрузить до 15 изображений, включая главное.\nЕсли передать значение `primary_image`, максимальное количество изображений в `images` — 14.\nЕсли параметр `primary_image` пустой, то в `images` можно передать до 15 изображений.\n\nДля загрузки изображений 360 используйте поле `images360`, для загрузки маркетингового цвета — `color_image`.\n\nЕсли вы хотите изменить состав или порядок изображений, получите информацию с помощью метода\n[/v3/product/info/list](#operation/ProductAPI_GetProductInfoList) — в нём отображается текущий порядок и\nсостав изображений. Скопируйте данные полей `images`, `images360`, `color_image`, измените и дополните состав или\nпорядок в соответствии с необходимостью.\n\n## Загрузка видео\n\nДля загрузки передайте в запросе ссылки на видео.\n\nДля этого в параметре `complex_attributes` передайте объект. В нём в массиве `attributes` передайте 2 объекта с `complex_id = 100001`:\n\n- В первом передайте укажите `id = 21841` и в массиве `values` передайте объект с ссылкой на видео.\n\n __Пример__:\n\n ```\n {\n \"complex_id\": 100001,\n \"id\": 21841,\n \"values\": [\n {\n \"value\": \"https://www.youtube.com/watch?v=ZwM0iBn03dY\"\n }\n ]\n }\n ```\n\n- Во втором укажите значение `id = 21837` и в массиве `values` передайте объект с названием видео.\n\n __Пример__:\n\n ```\n {\n \"complex_id\": 100001,\n \"id\": 21837,\n \"values\": [\n {\n \"value\": \"videoName_1\"\n }\n ]\n }\n ```\n\nЕсли вы хотите загрузить несколько видео, передавайте значения для каждого видео в разных объектах массива `values`.\n\n __Пример__:\n\n ```\n {\n \"complex_id\": 100001,\n \"id\": 21837,\n \"values\": [\n {\n \"value\": \"videoName_1\"\n },\n {\n \"value\": \"videoName_2\"\n }\n ]\n },\n {\n \"complex_id\": 100001,\n \"id\": 21841,\n \"values\": [\n {\n \"value\": \"https://www.youtube.com/watch?v=ZwM0iBn03dY\"\n },\n {\n \"value\": \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\n }\n ]\n }\n```\n\n## Загрузка таблицы размеров\nВы можете добавить в карточку товара таблицу размеров, созданную с помощью [конструктора](https://table-constructor.ozon.ru/visual-editor). Передайте её в массиве `attributes` в формате JSON как Rich-контент `id = 13164`.

\n[Конструктор в формате JSON](https://table-constructor.ozon.ru/schema.json)
\n[Подробнее о конструкторе в Базе знаний продавца](https://docs.ozon.ru/global/products/requirements/size-table-constructor/)\n\n## Загрузка видеообложки\n\nВы можете загрузить видеообложку через `complex_attributes`.\n\n__Пример__:\n\n```\n\"complex_attributes\": [\n {\n \"attributes\": [\n {\n \"id\": 21845,\n \"complex_id\": 100002,\n \"values\": [\n {\n \"dictionary_value_id\": 0,\n \"value\": \"https://v.ozone.ru/vod/video-10/01GFATWQVCDE7G5B721421P1231Q7/asset_1.mp4\"\n }\n ]\n }\n ]\n }\n]\n```\n", + "operationId": "ProductAPI_ImportProductsV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3ImportProductsRequest" + }, + "examples": { + "withoutVideo": { + "summary": "Пример запроса без загрузки видео", + "value": { + "items": [ + { + "attributes": [ + { + "complex_id": 0, + "id": 5076, + "values": [ + { + "dictionary_value_id": 971082156, + "value": "Стойка для акустической системы" + } + ] + }, + { + "complex_id": 0, + "id": 9048, + "values": [ + { + "value": "Комплект защитных плёнок для X3 NFC. Темный хлопок" + } + ] + }, + { + "complex_id": 0, + "id": 8229, + "values": [ + { + "dictionary_value_id": 95911, + "value": "Комплект защитных плёнок для X3 NFC. Темный хлопок" + } + ] + }, + { + "complex_id": 0, + "id": 85, + "values": [ + { + "dictionary_value_id": 5060050, + "value": "Samsung" + } + ] + }, + { + "complex_id": 0, + "id": 10096, + "values": [ + { + "dictionary_value_id": 61576, + "value": "серый" + } + ] + } + ], + "barcode": "112772873170", + "description_category_id": 17028922, + "new_description_category_id": 0, + "color_image": "", + "complex_attributes": [], + "currency_code": "RUB", + "depth": 10, + "dimension_unit": "mm", + "height": 250, + "images": [], + "images360": [], + "name": "Комплект защитных плёнок для X3 NFC. Темный хлопок", + "offer_id": "143210608", + "old_price": "1100", + "pdf_list": [], + "price": "1000", + "primary_image": "", + "promotions": [ + { + "operation": "UNKNOWN", + "type": "REVIEWS_PROMO" + } + ], + "type_id": 91565, + "vat": "0.1", + "weight": 100, + "weight_unit": "g", + "width": 150 + } + ] + } + }, + "withVideo": { + "summary": "Пример запроса с загрузкой видео", + "value": { + "items": [ + { + "attributes": [ + { + "complex_id": 0, + "id": 5076, + "values": [ + { + "dictionary_value_id": 971082156, + "value": "Стойка для акустической системы" + } + ] + }, + { + "complex_id": 0, + "id": 9048, + "values": [ + { + "value": "Комплект защитных плёнок для X3 NFC. Тёмный хлопок" + } + ] + }, + { + "complex_id": 0, + "id": 8229, + "values": [ + { + "dictionary_value_id": 95911, + "value": "Комплект защитных плёнок для X3 NFC. Тёмный хлопок" + } + ] + }, + { + "complex_id": 0, + "id": 85, + "values": [ + { + "dictionary_value_id": 5060050, + "value": "Samsung" + } + ] + }, + { + "complex_id": 0, + "id": 10096, + "values": [ + { + "dictionary_value_id": 61576, + "value": "серый" + } + ] + } + ], + "barcode": "112772873170", + "description_category_id": 17028922, + "new_description_category_id": 0, + "color_image": "", + "complex_attributes": [ + { + "attributes": [ + { + "complex_id": 100001, + "id": 21841, + "values": [ + { + "value": "https://www.youtube.com/watch?v=ZwM0iBn03dY" + } + ] + }, + { + "complex_id": 100001, + "id": 21837, + "values": [ + { + "value": "videoName_1" + } + ] + } + ] + }, + { + "attributes": [ + { + "complex_id": 100001, + "id": 21841, + "values": [ + { + "value": "https://www.youtube.com/watch?v=pz15NanA740" + } + ] + }, + { + "complex_id": 100001, + "id": 21837, + "values": [ + { + "value": "videoName_2" + } + ] + } + ] + } + ], + "currency_code": "RUB", + "depth": 10, + "dimension_unit": "mm", + "height": 250, + "images": [], + "images360": [], + "name": "Комплект защитных плёнок для X3 NFC. Тёмный хлопок", + "offer_id": "143210608", + "old_price": "1100", + "pdf_list": [], + "price": "1000", + "primary_image": "", + "promotions": [ + { + "operation": "UNKNOWN", + "type": "REVIEWS_PROMO" + } + ], + "type_id": 91565, + "vat": "0.1", + "weight": 100, + "weight_unit": "g", + "width": 150 + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Создан новый товар / Информация о товаре обновлена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3ImportProductsResponse" + }, + "example": { + "result": { + "task_id": 172549793 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/import/info": { + "post": { + "summary": "Узнать статус добавления или обновления товара", + "description": "Позволяет получить статус создания или обновления карточки товара.", + "operationId": "ProductAPI_GetImportProductsInfo", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productGetImportProductsInfoRequest" + }, + "example": { + "task_id": "172549793" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус добавления или обновления товара", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productGetImportProductsInfoResponse" + }, + "example": { + "result": { + "items": [ + { + "offer_id": "143210608", + "product_id": 137285792, + "status": "imported", + "errors": [] + } + ], + "total": 1 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/import-by-sku": { + "post": { + "summary": "Создать товар по SKU", + "description": "Метод создаёт [копию карточки товара](https://seller-edu.ozon.ru/work-with-goods/zagruzka-tovarov/creating-goods/cherez-kopirovanie)\nс указанным SKU.\n\nСоздать копию не получится, если продавец запретил копирование своих карточек.\n\nОбновить товар по SKU нельзя.\n", + "operationId": "ProductAPI_ImportProductsBySKU", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productImportProductsBySKURequest" + }, + "example": { + "items": [ + { + "sku": 298789742, + "name": "string", + "offer_id": "91132", + "currency_code": "RUB", + "old_price": "2590", + "price": "2300", + "vat": "0.1" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товар создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productImportProductsBySKUResponse" + }, + "example": { + "result": { + "task_id": 176594213, + "unmatched_sku_list": [] + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/attributes/update": { + "post": { + "summary": "Обновить характеристики товара", + "operationId": "ProductAPI_ProductUpdateAttributes", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductUpdateAttributesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Создано задание на обновление товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductUpdateAttributesResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/pictures/import": { + "post": { + "summary": "Загрузить или обновить изображения товара", + "description": "Метод для загрузки или обновления изображений товара.\n\nПри каждом вызове метода передавайте все изображения, которые должны быть на карточке товара. Например, если вы вызвали метод и загрузили 10 изображений, а затем вызвали метод второй раз и загрузили ещё одно,\nто все 10 предыдущих сотрутся.\n\nДля загрузки передайте адрес ссылки на изображение в общедоступном облачном хранилище.\nФормат изображения по ссылке — JPG или PNG.\n\nИзображения в массиве `images` располагайте в соответствии с желаемым порядком на сайте. Главным будет\nпервое изображение в массиве.\n\nДля каждого товара вы можете загрузить до 15 изображений.\n\nДля загрузки изображений 360 используйте поле `images360`, для загрузки маркетингового цвета — `color_image`.\n\nЕсли вы хотите изменить состав или порядок изображений, получите информацию с помощью метода\n[/v3/product/info/list](#operation/ProductAPI_GetProductInfoList) — в нём отображается текущий порядок и\nсостав изображений. Скопируйте данные полей `images`, `images360`, `color_image`, измените и дополните состав или\nпорядок в соответствии с необходимостью.\n", + "operationId": "ProductAPI_ProductImportPictures", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv1ProductImportPicturesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Предварительный результат работы метода", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv1ProductInfoPicturesResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v3/product/list": { + "post": { + "summary": "Список товаров", + "operationId": "ProductAPI_GetProductList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "description": "Метод для получения списка всех товаров.\n\nЕсли вы используете фильтр по идентификатору `offer_id` или `product_id`, остальные параметры заполнять не обязательно.\nЗа один раз вы можете использовать только одну группу идентификаторов, не больше 1000 товаров.\n\nЕсли вы не используете для отображения идентификаторы, укажите `limit` и `last_id` в следующих запросах.\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv3GetProductListRequest" + }, + "example": { + "filter": { + "offer_id": [ + "136748" + ], + "product_id": [ + "223681945" + ], + "visibility": "ALL" + }, + "last_id": "", + "limit": 100 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv3GetProductListResponse" + }, + "example": { + "result": { + "items": [ + { + "archived": true, + "has_fbo_stocks": true, + "has_fbs_stocks": true, + "is_discounted": true, + "offer_id": "136748", + "product_id": 223681945, + "quants": [ + { + "quant_code": "string", + "quant_size": 0 + } + ] + } + ], + "total": 1, + "last_id": "bnVсbA==" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/rating-by-sku": { + "post": { + "summary": "Получить контент-рейтинг товаров по SKU", + "description": "Метод для получения контент-рейтинга товаров, а также рекомендаций по его увеличению.\n\n[Подробнее о контент-рейтинге](https://seller-edu.ozon.ru/docs/work-with-goods/content-rating.html)\n", + "operationId": "ProductAPI_GetProductRatingBySku", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetProductRatingBySkuRequest" + }, + "example": { + "skus": [ + "179737222" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Контент-рейтинг товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetProductRatingBySkuResponse" + }, + "example": { + "products": [ + { + "sku": 179737222, + "rating": 42.5, + "groups": [ + { + "key": "media", + "name": "Медиа", + "rating": 70, + "weight": 25, + "conditions": [ + { + "key": "media_images_2", + "description": "Добавлено 2 изображения", + "fulfilled": true, + "cost": 50 + }, + { + "key": "media_images_3", + "description": "Добавлено 3 изображения и более", + "fulfilled": true, + "cost": 20 + }, + { + "key": "media_image_3d", + "description": "Добавлено 3D-изображение", + "fulfilled": false, + "cost": 15 + }, + { + "key": "media_video", + "description": "Добавлено видео", + "fulfilled": false, + "cost": 15 + } + ], + "improve_attributes": [ + { + "id": 4074, + "name": "Код ролика на YouTube" + }, + { + "id": 4080, + "name": "3D-изображение" + } + ], + "improve_at_least": 2 + }, + { + "key": "important_attributes", + "name": "Важные атрибуты", + "rating": 50, + "weight": 30, + "conditions": [ + { + "key": "important_2", + "description": "Заполнено 2 атрибута и более", + "fulfilled": true, + "cost": 50 + }, + { + "key": "important_50_percent", + "description": "Заполнено более 50% атрибутов", + "fulfilled": false, + "cost": 25 + }, + { + "key": "important_70_percent", + "description": "Заполнено более 70% атрибутов", + "fulfilled": false, + "cost": 25 + } + ], + "improve_attributes": [ + { + "id": 4385, + "name": "Гарантийный срок" + }, + { + "id": 4389, + "name": "Страна-изготовитель" + }, + { + "id": 8513, + "name": "Количество в упаковке, шт" + }, + { + "id": 8590, + "name": "Макс. диагональ, дюймы" + }, + { + "id": 8591, + "name": "Мин. диагональ, дюймы" + }, + { + "id": 9336, + "name": "Модель браслета/умных часов" + }, + { + "id": 11046, + "name": "Покрытие" + }, + { + "id": 11047, + "name": "Прозрачность покрытия" + }, + { + "id": 11048, + "name": "Дополнительные свойства покрытия" + }, + { + "id": 11049, + "name": "Вид стекла" + }, + { + "id": 11603, + "name": "Размер циферблата" + } + ], + "improve_at_least": 6 + }, + { + "key": "other_attributes", + "name": "Остальные атрибуты", + "rating": 0, + "weight": 25, + "conditions": [ + { + "key": "other_2", + "description": "Заполнено 2 атрибута и более", + "fulfilled": false, + "cost": 50 + }, + { + "key": "other_50_percent", + "description": "Заполнено более 50% атрибутов", + "fulfilled": false, + "cost": 50 + } + ], + "improve_attributes": [ + { + "id": 4382, + "name": "Размеры, мм" + } + ], + "improve_at_least": 1 + }, + { + "key": "text", + "name": "Текстовое описание", + "rating": 50, + "weight": 20, + "conditions": [ + { + "key": "text_annotation_100_chars", + "description": "Аннотация более 100 знаков", + "fulfilled": true, + "cost": 25 + }, + { + "key": "text_annotation_500_chars", + "description": "Аннотация более 500 знаков", + "fulfilled": true, + "cost": 25 + }, + { + "key": "text_rich", + "description": "Заполнен Rich-контент", + "fulfilled": false, + "cost": 100 + } + ], + "improve_attributes": [ + { + "id": 11254, + "name": "Rich-контент JSON" + } + ], + "improve_at_least": 1 + } + ] + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v3/product/info/list": { + "post": { + "summary": "Получить информацию о товарах по идентификаторам", + "description": "Метод для получения информации о товарах по их идентификаторам.\n\nВ теле запроса должен быть массив однотипных идентификаторов, в ответе будет массив `items`.\n\nВ одном запросе вы можете передать не больше 1000 товаров по параметрам `offer_id`, `product_id` и `sku` в сумме.\n", + "operationId": "ProductAPI_GetProductInfoList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3GetProductInfoListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3GetProductInfoListResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v4/product/info/attributes": { + "post": { + "summary": "Получить описание характеристик товара", + "description": "Возвращает описание характеристик товаров по идентификатору и видимости. Товар можно искать по `offer_id`, `product_id` или `sku`.", + "operationId": "ProductAPI_GetProductAttributesV4", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv4GetProductAttributesV4Request" + }, + "example": { + "filter": { + "product_id": [ + "213761435" + ], + "offer_id": [ + "testtest5" + ], + "sku": [ + "123495432" + ], + "visibility": "ALL" + }, + "limit": 100, + "sort_dir": "ASC" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Описание характеристик товара", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv4GetProductAttributesV4Response" + }, + "example": { + "result": [ + { + "id": 213761435, + "barcode": "", + "barcodes": [ + "123124123", + "123342455" + ], + "name": "Пленка защитная для Xiaomi Redmi Note 10 Pro 5G", + "offer_id": "21470", + "type_id": 124572394, + "height": 10, + "depth": 210, + "width": 140, + "dimension_unit": "mm", + "weight": 50, + "weight_unit": "g", + "primary_image": "https://cdn1.ozone.ru/s3/multimedia-4/6804736960.jpg", + "sku": 423434534, + "model_info": { + "model_id": 43445453, + "count": 4 + }, + "images": [ + "https://cdn1.ozone.ru/s3/multimedia-4/6804736960.jpg", + "https://cdn1.ozone.ru/s3/multimedia-j/6835412647.jpg" + ], + "pdf_list": [], + "attributes": [ + { + "id": 5219, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 970718176, + "value": "универсальный" + } + ] + }, + { + "id": 11051, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 970736931, + "value": "Прозрачный" + } + ] + }, + { + "id": 10100, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 0, + "value": "false" + } + ] + }, + { + "id": 11794, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 970860783, + "value": "safe" + } + ] + }, + { + "id": 9048, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 0, + "value": "Пленка защитная для Xiaomi Redmi Note 10 Pro 5G" + } + ] + }, + { + "id": 5076, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 39638, + "value": "Xiaomi" + } + ] + }, + { + "id": 9024, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 0, + "value": "21470" + } + ] + }, + { + "id": 10015, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 0, + "value": "false" + } + ] + }, + { + "id": 85, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 971034861, + "value": "Brand" + } + ] + }, + { + "id": 9461, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 349824787, + "value": "Защитная пленка для смартфона" + } + ] + }, + { + "id": 4180, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 0, + "value": "Пленка защитная для Xiaomi Redmi Note 10 Pro 5G" + } + ] + }, + { + "id": 4191, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 0, + "value": "Пленка предназначена для модели Xiaomi Redmi Note 10 Pro 5G. Защитная гидрогелевая пленка обеспечит защиту вашего смартфона от царапин, пыли, сколов и потертостей." + } + ] + }, + { + "id": 8229, + "complex_id": 0, + "values": [ + { + "dictionary_value_id": 91521, + "value": "Защитная пленка" + } + ] + } + ], + "attributes_with_defaults": [ + 5435, + 3452 + ], + "complex_attributes": [], + "color_image": "", + "description_category_id": 71107562 + } + ], + "total": 1, + "last_id": "onVsfA==" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/info/description": { + "post": { + "summary": "Получить описание товара", + "operationId": "ProductAPI_GetProductInfoDescription", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productGetProductInfoDescriptionRequest" + }, + "example": { + "offer_id": "5", + "product_id": 73453843 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Описание товара", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productGetProductInfoDescriptionResponse" + }, + "example": { + "result": { + "id": 73453843, + "offer_id": "5", + "name": "Онлайн курс по дрессировке собак \"Воспитанная собака за 3 недели\"", + "description": "Экспресс-курс - это сокращённый вариант курса \"Собака: инструкция по применению\", дающий базовый минимум знаний, навыков, умений. Это оптимальный вариант для совершения первых шагов по воспитанию!

Что дает Экспресс-курс:
  • Контакт с собакой
К концу экспресс-курса дрессировки вы получаете воспитанного друга и соратника, который ориентируется на вас в любой ситуации.
  • Уверенность в безопасности
Благополучие собаки: больше не будет срывов с поводка, преследования кошек, попыток съесть что-либо на улице и т. д.
  • Комфортная жизнь
Принципиально другой уровень общения, без раздражения, криков и недовольства поведением животного." + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v4/product/info/limit": { + "post": { + "summary": "Лимиты на ассортимент, создание и обновление товаров", + "operationId": "ProductAPI_GetUploadQuota", + "description": "Метод для получения информации о лимитах:\n- На ассортимент — сколько всего товаров можно создать в вашем личном кабинете.\n- На создание товаров — сколько товаров можно создать в сутки.\n- На обновление товаров — сколько товаров можно отредактировать в сутки.\n\nЕсли у вас есть лимит на ассортимент и вы израсходуете его, вы не сможете создавать новые товары.\n\n[Подробнее о лимитах в Базе знаний продавца](https://seller-edu.ozon.ru/work-with-goods/zagruzka-tovarov/creating-goods/limit/)\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Лимиты на ассортмент, создание и обновление товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v4GetUploadQuotaResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/update/offer-id": { + "post": { + "summary": "Изменить артикулы товаров из системы продавца", + "description": "Метод для изменения `offer_id`, привязанных к товарам. Вы можете изменить несколько `offer_id`.\n\nРекомендуем передавать до 250 значений в массиве.\n", + "operationId": "ProductAPI_ProductUpdateOfferID", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductUpdateOfferIdRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об изменении артикулов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductUpdateOfferIdResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/archive": { + "post": { + "summary": "Перенести товар в архив", + "operationId": "ProductAPI_ProductArchive", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductArchiveRequest" + }, + "example": { + "product_id": [ + "125529926" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товар перенесён в архив", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productBooleanResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/unarchive": { + "post": { + "summary": "Вернуть товар из архива", + "operationId": "ProductAPI_ProductUnarchive", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductUnarchiveRequest" + }, + "example": { + "product_id": [ + "125529926" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товар из архива возвращён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productBooleanResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v2/products/delete": { + "post": { + "summary": "Удалить товар без SKU из архива", + "description": "В одном запросе можно передать до 500 идентификаторов.", + "operationId": "ProductAPI_DeleteProducts", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv2DeleteProductsRequest" + }, + "example": { + "products": [ + { + "offer_id": "033" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товар удалён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv2DeleteProductsResponse" + }, + "example": { + "status": [ + { + "offer_id": "033", + "is_deleted": true, + "error": "" + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/product/info/subscription": { + "post": { + "summary": "Количество подписавшихся на товар пользователей", + "description": "Метод для получения количества пользователей, которые нажали **Узнать о поступлении** на странице товара.\n\nВы можете передать несколько товаров в запросе.\n", + "tags": [ + "ProductAPI" + ], + "operationId": "ProductAPI_GetProductInfoSubscription", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetProductInfoSubscriptionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Количество подписавшихся пользователей", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetProductInfoSubscriptionResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/related-sku/get": { + "post": { + "summary": "Получить связанные SKU", + "description": "Метод для получения единого SKU по старым идентификаторам SKU FBS и SKU FBO. \nВ ответе будут все SKU, связанные с переданными.\n\nМетод может обработать любые SKU, даже скрытые или удалённые.\n\nПередавайте до 200 SKU в одном запросе.\n", + "operationId": "ProductAPI_ProductGetRelatedSKU", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductGetRelatedSKURequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об SKU", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductGetRelatedSKUResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v2/product/pictures/info": { + "post": { + "summary": "Получить изображения товаров", + "operationId": "ProductAPI_ProductInfoPicturesV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ProductInfoPicturesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Изображения товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ProductInfoPicturesResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ProductAPI" + ] + } + }, + "/v1/barcode/add": { + "post": { + "summary": "Привязать штрихкод к товару", + "description": "Если у товара есть штрихкод, который не указан в системе Ozon, привяжите его с помощью этого метода.\nЕсли штрихкода нет, вы можете создать его через метод [/v1/barcode/generate](#operation/generate-barcode).\n\nЗа один запрос вы можете назначить штрихкод не больше чем на 100 товаров. \nНа одном товаре может быть до 100 штрихкодов. \nС одного аккаунта продавца можно использовать метод не больше 20 раз в минуту.\n", + "tags": [ + "BarcodeAPI" + ], + "operationId": "add-barcode", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AddBarcodeRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Штрихкод привязан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AddBarcodeResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/barcode/generate": { + "post": { + "summary": "Создать штрихкод для товара", + "description": "Если у товара нет штрихкода, вы можете создать его с помощью этого метода.\nЕсли штрихкод уже есть, но он не указан в системе Ozon, вы можете привязать его через метод [/v1/barcode/add](#operation/add-barcode).\n\nЗа один запрос вы можете создать штрихкоды не больше чем для 100 товаров.\nС одного аккаунта продавца можно использовать метод не больше 20 раз в минуту.\n", + "tags": [ + "BarcodeAPI" + ], + "operationId": "generate-barcode", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GenerateBarcodeRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Штрихкод создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GenerateBarcodeResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/products/stocks": { + "post": { + "summary": "Обновить количество товаров на складах", + "description": "Позволяет изменить информацию о количестве товара в наличии.\n\n\n\nЗа один запрос можно изменить наличие для 100 пар товар-склад. С одного аккаунта продавца можно отправить до 80 запросов в минуту.\n\n\n\nВы можете задать наличие товара только после того, как его статус сменится на `price_sent`.\n\nОстатки крупногабаритных товаров можно обновлять только на предназначенных для них складах.\n\nЕсли запрос содержит оба параметра — `offer_id` и `product_id`, изменения применятся к товару с `offer_id`. Для избежания неоднозначности используйте только один из параметров.\n\n\n", + "operationId": "ProductAPI_ProductsStocksV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv2ProductsStocksRequest" + }, + "example": { + "stocks": [ + { + "offer_id": "PH11042", + "product_id": 313455276, + "stock": 100, + "warehouse_id": 22142605386000 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Количество товаров обновлено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv2ProductsStocksResponse" + }, + "example": { + "result": [ + { + "warehouse_id": 22142605386000, + "product_id": 118597312, + "offer_id": "PH11042", + "updated": true, + "errors": [] + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v4/product/info/stocks": { + "post": { + "summary": "Информация о количестве товаров", + "description": "Возвращает информацию о ĸоличестве товаров по схемам FBS и rFBS:\n - сĸольĸо единиц есть в наличии,\n - сĸольĸо зарезервировано поĸупателями.\n\nЧтобы получить информацию об остатках по схеме FBO, используйте метод [v1/analytics/manage/stocks](#operation/AnalyticsAPI_ManageStocks).\n", + "operationId": "ProductAPI_GetProductInfoStocks", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v4GetProductInfoStocksRequest" + }, + "example": { + "cursor": "", + "filter": { + "offer_id": [ + "string" + ], + "product_id": [ + "313455276" + ], + "visibility": "ALL", + "with_quant": { + "created": true, + "exists": true + } + }, + "limit": 100 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Количество товара", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v4GetProductInfoStocksResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v1/product/info/stocks-by-warehouse/fbs": { + "post": { + "summary": "Информация об остатках на складах продавца (FBS и rFBS)", + "operationId": "ProductAPI_ProductStocksByWarehouseFbs", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productsv1GetProductInfoStocksByWarehouseFbsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Количество товаров на складах FBS и rFBS", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productsv1GetProductInfoStocksByWarehouseFbsResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v1/product/import/prices": { + "post": { + "summary": "Обновить цену", + "description": "Позволяет изменить цену одного или нескольких товаров.\nЦену каждого товара можно обновлять не больше 10 раз в час.\nЧтобы сбросить `old_price`, поставьте `0` у этого параметра. \n\nЕсли у товара установлена минимальная цена и включено автоприменение в акции, отключите его и обновите \nминимальную цену, иначе вернётся ошибка `action_price_enabled_min_price_missing`.\n\nЕсли запрос содержит оба параметра — `offer_id` и `product_id`, изменения применятся к товару с `offer_id`. Для избежания неоднозначности используйте только один из параметров.\n", + "operationId": "ProductAPI_ImportProductsPrices", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productImportProductsPricesRequest" + }, + "example": { + "prices": [ + { + "auto_action_enabled": "UNKNOWN", + "auto_add_to_ozon_actions_list_enabled": "UNKNOWN", + "currency_code": "RUB", + "min_price": "800", + "min_price_for_auto_actions_enabled": true, + "net_price": "650", + "offer_id": "", + "old_price": "0", + "price": "1448", + "price_strategy_enabled": "UNKNOWN", + "product_id": 1386, + "quant_size": 1, + "vat": "0.1" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Цена обновлена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productImportProductsPricesResponse" + }, + "example": { + "result": [ + { + "product_id": 1386, + "offer_id": "PH8865", + "updated": true, + "errors": [] + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v5/product/info/prices": { + "post": { + "summary": "Получить информацию о цене товара", + "operationId": "ProductAPI_GetProductInfoPrices", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv5GetProductInfoPricesV5Request" + }, + "example": { + "cursor": "", + "filter": { + "offer_id": [ + "356792" + ], + "product_id": [ + "243686911" + ], + "visibility": "ALL" + }, + "limit": 100 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о цене товара", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productv5GetProductInfoPricesV5Response" + }, + "example": { + "cursor": "string", + "items": [ + { + "acquiring": 0, + "commissions": { + "fbo_deliv_to_customer_amount": 14.75, + "fbo_direct_flow_trans_max_amount": 46.5, + "fbo_direct_flow_trans_min_amount": 31, + "fbo_return_flow_amount": 50, + "fbs_deliv_to_customer_amount": 60, + "fbs_direct_flow_trans_max_amount": 61.5, + "fbs_direct_flow_trans_min_amount": 41, + "fbs_first_mile_max_amount": 25, + "fbs_first_mile_min_amount": 0, + "fbs_return_flow_amount": 40, + "sales_percent_fbo": 15, + "sales_percent_fbs": 0 + }, + "marketing_actions": { + "actions": [ + { + "date_from": "2024-12-13T06:49:37.591Z", + "date_to": "2024-12-13T06:49:37.591Z", + "title": "string", + "value": 0 + } + ], + "current_period_from": "2024-12-13T06:49:37.591Z", + "current_period_to": "2024-12-13T06:49:37.591Z", + "ozon_actions_exist": true + }, + "offer_id": "356792", + "price": { + "auto_action_enabled": true, + "auto_add_to_ozon_actions_list_enabled": true, + "currency_code": "RUB", + "marketing_price": 0, + "marketing_seller_price": 0, + "min_price": 0, + "net_price": 0, + "old_price": 579, + "price": 499, + "retail_price": 0, + "vat": 0.2 + }, + "price_indexes": { + "color_index": "WITHOUT_INDEX", + "external_index_data": { + "min_price": 0, + "min_price_currency": "string", + "price_index_value": 0 + }, + "ozon_index_data": { + "min_price": 0, + "min_price_currency": "string", + "price_index_value": 0 + }, + "self_marketplaces_index_data": { + "min_price": 0, + "min_price_currency": "string", + "price_index_value": 0 + } + }, + "product_id": 243686911, + "volume_weight": 0 + } + ], + "total": 0 + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v1/product/info/discounted": { + "post": { + "summary": "Узнать информацию об уценке и основном товаре по SKU уценённого товара", + "description": "Метод для получения информации о состоянии и дефектах уценённого товара по его SKU. Работает только с уценёнными товарами по схеме FBO. Также метод возвращает SKU основного товара.", + "operationId": "ProductAPI_GetProductInfoDiscounted", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetProductInfoDiscountedRequest" + }, + "example": { + "discounted_skus": [ + "635548518" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об уценке и основном товаре", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetProductInfoDiscountedResponse" + }, + "example": { + "items": [ + { + "discounted_sku": 635548518, + "sku": 320067758, + "condition_estimation": "4", + "packaging_violation": "", + "warranty_type": "", + "reason_damaged": "Механическое повреждение", + "comment_reason_damaged": "повреждена заводская упаковка", + "defects": "", + "mechanical_damage": "", + "package_damage": "", + "shortage": "", + "repair": "", + "condition": "" + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v1/product/update/discount": { + "post": { + "summary": "Установить скидку на уценённый товар", + "description": "Метод для установки размера скидки на уценённые товары, продающиеся по схеме FBS.", + "operationId": "ProductAPI_ProductUpdateDiscount", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductUpdateDiscountRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Успешно", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductUpdateDiscountResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Prices&StocksAPI" + ] + } + }, + "/v1/actions": { + "get": { + "tags": [ + "Promos" + ], + "operationId": "Promos", + "summary": "Список акций", + "description": "Метод для получения списка акций Ozon, в которых можно участвовать.\n\n[Подробнее об акциях Ozon](https://seller-edu.ozon.ru/ceny-i-akcii/akcii-skidki-i-kupony/promo)\n", + "responses": { + "200": { + "description": "Список акций", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiGetSellerActionsV1Response" + }, + "example": { + "result": [ + { + "id": 71342, + "title": "test voucher #2", + "date_start": "2021-11-22T09:46:38Z", + "date_end": "2021-11-30T20:59:59Z", + "potential_products_count": 0, + "is_participating": true, + "participating_products_count": 5, + "description": "", + "action_type": "DISCOUNT", + "banned_products_count": 0, + "with_targeting": false, + "discount_type": "UNKNOWN", + "discount_value": 0, + "order_amount": 0, + "freeze_date": "", + "is_voucher_action": true + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/candidates": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Список доступных для акции товаров", + "description": "Метод для получения списка товаров, которые могут участвовать в акции, по её идентификатору.\n
\n\n", + "operationId": "PromosCandidates", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiGetSellerProductV1Request" + }, + "example": { + "action_id": 63337, + "limit": 10, + "offset": 0, + "last_id": "bnVсbA==" + } + } + } + }, + "responses": { + "200": { + "description": "Список товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiGetSellerProductV1Response" + }, + "example": { + "result": { + "products": [ + { + "id": 226, + "price": 250, + "action_price": 0, + "alert_max_action_price_failed": true, + "alert_max_action_price": 31, + "max_action_price": 175, + "add_mode": "NOT_SET", + "stock": 0, + "min_stock": 0 + }, + { + "id": 1366, + "price": 2300, + "action_price": 630, + "alert_max_action_price_failed": true, + "alert_max_action_price": 31, + "max_action_price": 770, + "add_mode": "MANUAL", + "stock": 0, + "min_stock": 0 + } + ], + "total": 2, + "last_id": "bnVсbA==" + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/products": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Список участвующих в акции товаров", + "description": "Метод для получения списка товаров, участвующих в акции, по её идентификатору.\n
\n\n", + "operationId": "PromosProducts", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiGetSellerProductV1Request" + }, + "example": { + "action_id": 66011, + "limit": 10, + "offset": 0, + "last_id": "bnVсbA==" + } + } + } + }, + "responses": { + "200": { + "description": "Список товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiGetSellerProductV1Response" + }, + "example": { + "result": { + "products": [ + { + "id": 28745, + "price": 99, + "action_price": 50, + "alert_max_action_price_failed": true, + "alert_max_action_price": 31, + "max_action_price": 32, + "add_mode": "MANUAL", + "stock": 20, + "min_stock": 0 + } + ], + "total": 263, + "last_id": "bnVсbA==" + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/products/activate": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Добавить товар в акцию", + "description": "Метод для добавления товаров в доступную акцию.", + "operationId": "PromosProductsActivate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiActivateProductV1Request" + }, + "example": { + "action_id": 60564, + "products": [ + { + "action_price": 356, + "product_id": 1389, + "stock": 10 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товар добавлен в акцию", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiProductV1Response" + }, + "example": { + "result": { + "product_ids": [ + 1389 + ], + "rejected": [] + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/products/deactivate": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Удалить товары из акции", + "description": "Метод для удаления товаров из акции.", + "operationId": "PromosProductsDeactivate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiProductIDsV1Request" + }, + "example": { + "action_id": 66011, + "product_ids": [ + 14975 + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товары удалены из акции", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/seller_apiProductV1ResponseDeactivate" + }, + "example": { + "result": { + "product_ids": [ + 14975 + ], + "rejected": [] + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/discounts-task/list": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Список заявок на скидку", + "description": "Метод для получения списка товаров, которые покупатели хотят купить со скидкой.", + "operationId": "promos_task_list", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetDiscountTaskListRequest" + }, + "example": { + "status": "UNKNOWN", + "page": 1, + "limit": 50 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список заявок", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetDiscountTaskListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/discounts-task/approve": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Согласовать заявку на скидку", + "description": "Вы можете согласовывать заявки в статусах: `NEW` — новые, `SEEN` — просмотренные.\n", + "operationId": "promos_task_approve", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ApproveDiscountTasksRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявки согласованы", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ApproveDeclineDiscountTasksResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/actions/discounts-task/decline": { + "post": { + "tags": [ + "Promos" + ], + "summary": "Отклонить заявку на скидку", + "description": "Вы можете отклонить заявки в статусах: `NEW` — новые, `SEEN` — просмотренные.\n", + "operationId": "promos_task_decline", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DeclineDiscountTasksRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявки отклонены", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ApproveDeclineDiscountTasksResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/competitors/list": { + "post": { + "summary": "Список конкурентов", + "description": "Метод для получения списка конкурентов — продавцов с похожими товарами в других интернет-магазинах и маркетплейсах.", + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_competitors", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetCompetitorsRequest" + }, + "example": { + "page": 1, + "limit": 20 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список конкурентов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetCompetitorsResponse" + }, + "example": { + "competitor": [ + { + "competitor_name": "string", + "competitor_id": 0 + } + ], + "total": 0 + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/list": { + "post": { + "summary": "Список стратегий", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_list", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyListRequest" + }, + "example": { + "page": 1, + "limit": 20 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список стратегий", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyListResponse" + }, + "example": { + "strategies": [ + { + "strategy_id": "string", + "strategy_name": "string", + "type": "string", + "update_type": "string", + "updated_at": "string", + "products_count": 0, + "competitors_count": 0, + "enabled": true + } + ], + "total": 0 + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/create": { + "post": { + "summary": "Создать стратегию", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_create", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreatePricingStrategyRequest" + }, + "example": { + "strategy_name": "Новая стратегия", + "competitors": [ + { + "competitor_id": 1008426, + "coefficient": 1 + }, + { + "competitor_id": 204, + "coefficient": 1 + }, + { + "competitor_id": 91, + "coefficient": 1 + }, + { + "competitor_id": 48, + "coefficient": 1 + } + ], + "company_id": 7 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Стратегия создана", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreatePricingStrategyResponse" + }, + "example": { + "result": { + "id": "4f3a1d4c-5833-4f04-b69b-495cbc1f6f1c" + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/info": { + "post": { + "summary": "Информация о стратегии", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_info", + "requestBody": { + "$ref": "#/components/requestBodies/v1StrategyRequest", + "example": { + "strategy_id": "4f3a1d4c-5833-4f04-b69b-495cbc1f6f1c" + } + }, + "responses": { + "200": { + "description": "Информация о стратегии", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyResponse" + }, + "example": { + "result": { + "strategy_name": "тест1", + "enabled": true, + "update_type": "strategyItemsListChanged", + "type": "COMP_PRICE", + "competitors": [ + { + "competitor_id": 204, + "coefficient": 1 + }, + { + "competitor_id": 1008426, + "coefficient": 1 + } + ] + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/update": { + "post": { + "summary": "Обновить стратегию", + "description": "Можно обновить все стратегии кроме системной.", + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_update", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1UpdatePricingStrategyRequest" + }, + "example": { + "strategy_id": "a3de1826-9c54-40f1-bb6d-1a9e2638b058", + "strategy_name": "Новая стратегия", + "competitors": [ + { + "competitor_id": 1008426, + "coefficient": 1 + }, + { + "competitor_id": 204, + "coefficient": 1 + }, + { + "competitor_id": 91, + "coefficient": 1 + }, + { + "competitor_id": 48, + "coefficient": 1 + }, + { + "competitor_id": 45, + "coefficient": 1 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Стратегия обновлена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/products/add": { + "post": { + "summary": "Добавить товары в стратегию", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_items-add", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AddStrategyItemsRequest" + }, + "example": { + "product_id": [ + "29209" + ], + "strategy_id": "e29114f0-177d-4160-8d06-2bc528470dda" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Ошибки при добавлении товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AddStrategyItemsResponse" + }, + "example": { + "result": { + "failed_product_count": 0 + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/strategy-ids-by-product-ids": { + "post": { + "summary": "Список идентификаторов стратегий", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_ids", + "requestBody": { + "$ref": "#/components/requestBodies/v1ItemIDsRequest" + }, + "responses": { + "200": { + "description": "Список идентификаторов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyIDsByItemIDsResponse" + }, + "example": { + "result": { + "products_info": [ + { + "product_id": 29209, + "strategy_id": "b7cd30e6-5667-424d-b105-fbec30a52477" + } + ] + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/products/list": { + "post": { + "summary": "Список товаров в стратегии", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_items-list", + "requestBody": { + "$ref": "#/components/requestBodies/v1StrategyRequest" + }, + "responses": { + "200": { + "description": "Список товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyItemsResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/product/info": { + "post": { + "summary": "Цена товара у конкурента", + "description": "Если вы добавили товар в стратегию ценообразования, метод вернёт цену и ссылку на товар у конкурента.", + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_items-info", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyItemInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Цена товара у конкурента", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetStrategyItemInfoResponse" + }, + "example": { + "result": { + "strategy_id": "string", + "is_enabled": true, + "strategy_product_price": 0, + "price_downloaded_at": "2022-11-17T15:33:53.936Z", + "strategy_competitor_id": 0, + "strategy_competitor_product_url": "string" + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/products/delete": { + "post": { + "summary": "Удалить товары из стратегии", + "description": null, + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_items-delete", + "requestBody": { + "$ref": "#/components/requestBodies/v1ItemIDsRequest", + "example": { + "product_id": [ + "29209" + ] + } + }, + "responses": { + "200": { + "description": "Ошибки при удалении товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DeleteStrategyItemsResponse" + }, + "example": { + "result": { + "failed_product_count": 0 + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/status": { + "post": { + "summary": "Изменить статус стратегии", + "description": "Можно изменить статус любой стратегии кроме системной.", + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_status", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1UpdateStatusStrategyRequest" + }, + "example": { + "strategy_id": "c7516438-7124-4e2c-85d3-ccd92b6b9b65", + "enabled": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус стратегии изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pricing-strategy/delete": { + "post": { + "summary": "Удалить стратегию", + "description": "Можно удалить любую стратегию кроме системной.", + "tags": [ + "PricingStrategyAPI" + ], + "operationId": "pricing_delete", + "requestBody": { + "$ref": "#/components/requestBodies/v1StrategyRequest", + "example": { + "strategy_id": "c7516438-7124-4e2c-85d3-ccd92b6b9b65" + } + }, + "responses": { + "200": { + "description": "Стратегия удалена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/pass/list": { + "post": { + "tags": [ + "Pass" + ], + "summary": "Список пропусков", + "operationId": "PassList", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/arrivalpassArrivalPassListRequest" + }, + "example": { + "cursor": "", + "filter": { + "arrival_pass_ids": [ + "string" + ], + "arrival_reason": "string", + "dropoff_point_ids": [ + "string" + ], + "only_active_passes": true, + "warehouse_ids": [ + "string" + ] + }, + "limit": 1000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список пропусков", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/arrivalpassArrivalPassListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/carriage/pass/create": { + "post": { + "tags": [ + "Pass" + ], + "summary": "Создать пропуск", + "description": "Идентификатор созданного пропуска добавится к перевозке.", + "operationId": "carriagePassCreate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/sellerSellerAPIArrivalPassCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Пропуск создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/sellerSellerAPIArrivalPassCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/carriage/pass/update": { + "post": { + "tags": [ + "Pass" + ], + "summary": "Обновить пропуск", + "operationId": "carriagePassUpdate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/sellerSellerAPIArrivalPassUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Пропуск обновлён", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Пропуск обновлён" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/carriage/pass/delete": { + "post": { + "tags": [ + "Pass" + ], + "summary": "Удалить пропуск", + "description": null, + "operationId": "carriagePassDelete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/sellerSellerAPIArrivalPassDeleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Пропуск удалён", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Пропуск удалён" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/pass/create": { + "post": { + "tags": [ + "Pass" + ], + "operationId": "returnPassCreate", + "summary": "Создать пропуск для возврата", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/arrivalpassArrivalPassCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Пропуск создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/arrivalpassArrivalPassCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/pass/update": { + "post": { + "tags": [ + "Pass" + ], + "operationId": "returnPassUpdate", + "summary": "Обновить пропуск для возврата", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/arrivalpassArrivalPassUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Пропуск обновлён", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/pass/delete": { + "post": { + "tags": [ + "Pass" + ], + "operationId": "returnPassDelete", + "summary": "Удалить пропуск для возврата", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/arrivalpassArrivalPassDeleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Пропуск удалён", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/brand/company-certification/list": { + "post": { + "summary": "Список сертифицируемых брендов", + "description": "Метод для получения списка брендов, для которых требуется предоставить сертификат. Ответ содержит список брендов,\nтовары которых есть в вашем личном кабинете.\n\nСписок брендов может изменяться, если Ozon получит требование от бренда предоставлять сертификат.\n", + "operationId": "BrandAPI_BrandCompanyCertificationList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/brandBrandCompanyCertificationListRequest" + }, + "example": { + "page": 1, + "page_size": 50 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список брендов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/brandBrandCompanyCertificationListResponse" + }, + "example": { + "result": { + "brand_certification": [ + { + "brand_id": 135476863, + "brand_name": "Sea of Spa", + "has_certificate": false + } + ], + "total": 1 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BrandAPI" + ] + } + }, + "/v1/product/certificate/accordance-types": { + "get": { + "summary": "Список типов соответствия требованиям (версия 1)", + "operationId": "ProductAPI_ProductCertificateAccordanceTypes", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Cправочник типов соответствия требованиям", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductCertificateAccordanceTypesResponse" + }, + "example": { + "result": [ + { + "name": "ГОСТ", + "value": "gost" + }, + { + "name": "Технический регламент РФ", + "value": "technical_regulations_rf" + }, + { + "name": "Технический регламент ТС", + "value": "technical_regulations_cu" + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CertificationAPI" + ] + } + }, + "/v2/product/certificate/accordance-types/list": { + "get": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateAccordanceTypes", + "summary": "Список типов соответствия требованиям (версия 2)", + "description": null, + "responses": { + "200": { + "description": "Список типов соответствия требованиям", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ProductCertificateAccordanceTypesResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/types": { + "get": { + "summary": "Справочник типов документов", + "operationId": "ProductAPI_ProductCertificateTypes", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Справочник типов документов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductCertificateTypesResponse" + }, + "example": { + "result": [ + { + "name": "Сертификат соответствия", + "value": "certificate_of_conformity" + }, + { + "name": "Декларация", + "value": "declaration" + }, + { + "name": "Свидетельство о гос регистрации", + "value": "certificate_of_registration" + }, + { + "name": "Регистрационное удостоверение", + "value": "registration_certificate" + }, + { + "name": "Отказное письмо", + "value": "refused_letter" + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CertificationAPI" + ] + } + }, + "/v2/product/certification/list": { + "post": { + "summary": "Список сертифицируемых категорий", + "operationId": "ProductAPI_ProductCertificationList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ProductCertificationListRequest" + }, + "example": { + "page": 1, + "page_size": 100 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список сертифицируемых категорий", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ProductCertificationListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "CertificationAPI" + ] + } + }, + "/v1/product/certification/list": { + "post": { + "summary": "Список сертифицируемых категорий", + "operationId": "ProductAPI_V1ProductCertificationList", + "description": "\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductCertificationListRequest" + }, + "example": { + "page": 1, + "page_size": 100 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список сертифицируемых категорий", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductCertificationListResponse" + }, + "example": { + "result": { + "certification": [ + { + "is_required": true, + "category_name": "Витаминно-минеральные комплексы для взрослых" + } + ], + "total": 1 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CertificationAPI" + ] + } + }, + "/v1/product/certificate/create": { + "post": { + "summary": "Добавить сертификаты для товаров", + "operationId": "ProductAPI_ProductCertificateCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "files": { + "description": "Массив сертификатов для товара. Допустимые расширения jpg, jpeg, png, pdf.", + "type": "array", + "items": { + "type": "file" + } + }, + "name": { + "type": "string", + "description": "Название сертификата. Максимум 100 символов." + }, + "number": { + "type": "string", + "description": "Номер сертификата. Максимум 100 символов." + }, + "type_code": { + "type": "string", + "description": "Тип сертификата. Чтобы получить доступные типы, используйте метод [GET /v1/product/certificate/types](#operation/ProductAPI_ProductCertificateTypes).", + "enum": [ + "certificate_of_conformity", + "declaration", + "certificate_of_registration", + "registration_certificate", + "refused_letter" + ] + }, + "accordance_type_code": { + "type": "string", + "description": "Тип соответствия требованиям. Чтобы получить доступные типы, используйте метод [GET /v1/product/certificate/accordance-types](#operation/ProductAPI_ProductCertificateAccordanceTypes).", + "enum": [ + "technical_regulations_rf", + "technical_regulations_cu", + "gost" + ] + }, + "issue_date": { + "type": "string", + "format": "date-time", + "default": "2021-04-30T11:31:26Z", + "description": "Дата начала действия сертификата." + }, + "expire_date": { + "description": "Дата окончания действия сертификата. Может быть пустым для бессрочных сертификатов.\n\nФормат: `2021-04-30T11:31:26Z`.\n", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "files", + "name", + "number", + "type_code", + "issue_date" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Идентификатор загруженного сертификата", + "content": { + "application/json": { + "schema": { + "type": "integer", + "example": { + "id": 50058 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CertificationAPI" + ] + } + }, + "/v1/product/certificate/bind": { + "post": { + "summary": "Привязать сертификат к товару", + "operationId": "ProductAPI_ProductCertificateBind", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productProductCertificateBindRequest" + }, + "example": { + "certificate_id": 50058, + "product_id": [ + 290 + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Сертификат привязан к товару", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/productBooleanResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CertificationAPI" + ] + } + }, + "/v1/product/certificate/delete": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateDelete", + "summary": "Удалить сертификат", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateDeleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат удаления сертификата", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateDeleteResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/info": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateInfo", + "summary": "Информация о сертификате", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о сертификате", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/list": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateList", + "summary": "Список сертификатов", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateListRequest" + }, + "example": { + "offer_id": "string", + "status": "string", + "type": "string", + "page": 1, + "page_size": 50 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список сертификатов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/product_status/list": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "ProductStatusList", + "summary": "Список возможных статусов товаров", + "description": "Метод для получения списка возможных статусов товаров при их привязке к сертификату.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateProductStatusListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список статусов товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateProductStatusListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/products/list": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateProductsList", + "summary": "Список товаров, привязанных к сертификату", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateProductsListRequest" + }, + "example": { + "certificate_id": 0, + "product_status_code": "string", + "page": 1, + "page_size": 50 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateProductsListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/unbind": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateUnbind", + "summary": "Отвязать товар от сертификата", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateUnbindRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товар отвязан от сертификата", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateUnbindResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/rejection_reasons/list": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "RejectionReasonsList", + "summary": "Возможные причины отклонения сертификата", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateRejectionReasonsListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Причины отклонения сертификата", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateRejectionReasonsListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/certificate/status/list": { + "post": { + "tags": [ + "CertificationAPI" + ], + "operationId": "CertificateStatusList", + "summary": "Возможные статусы сертификатов", + "description": null, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateStatusListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Возможные статусы сертификатов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductCertificateStatusListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/warehouse/list": { + "post": { + "summary": "Список складов", + "description": "Метод возвращает список складов FBS и rFBS. Чтобы получить список складов FBO, используйте метод [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList).", + "operationId": "WarehouseAPI_WarehouseList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Список складов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/warehouseWarehouseListResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "WarehouseAPI" + ] + } + }, + "/v1/delivery-method/list": { + "post": { + "summary": "Список методов доставки склада", + "description": null, + "operationId": "WarehouseAPI_DeliveryMethodList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/warehouseDeliveryMethodListRequest" + }, + "example": { + "filter": { + "provider_id": 424, + "status": "ACTIVE", + "warehouse_id": 15588127982000 + }, + "limit": 100, + "offset": 0 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список методов склада", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/warehouseDeliveryMethodListResponse" + }, + "example": { + "result": [ + { + "id": 15588127982000, + "company_id": 1, + "name": "Ozon Логистика курьеру, Есипово", + "status": "ACTIVE", + "cutoff": "13:00", + "provider_id": 24, + "template_id": 0, + "warehouse_id": 15588127982000, + "created_at": "2019-04-04T15:22:31.048202Z", + "updated_at": "2021-08-15T10:21:44.854209Z", + "sla_cut_in": 1440 + } + ], + "has_next": false + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "WarehouseAPI" + ] + } + }, + "/v1/polygon/create": { + "post": { + "summary": "Создайте полигон доставки", + "description": "Вы можете добавить полигон к методу доставки.\n\nСоздайте полигон, получив его координаты на https://geojson.io: отметьте на карте минимум 3 точки и соедините их линиями.\n", + "operationId": "PolygonAPI_CreatePolygon", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/polygonv1PolygonCreateRequest" + }, + "example": { + "coordinates": "[[[30.149574279785153,59.86550435303646],[30.21205902099609,59.846884387977326],[30.255661010742184,59.86240174913176],[30.149574279785153,59.86550435303646]]]" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Полигон создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/polygonv1PolygonCreateResponse" + }, + "example": { + "polygonId": "1323" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus_v1PolygonCreate" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "PolygonAPI" + ] + } + }, + "/v1/polygon/bind": { + "post": { + "summary": "Свяжите метод доставки с полигоном доставки", + "operationId": "PolygonAPI_BindPolygon", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/polygonv1PolygonBindRequest" + }, + "example": { + "delivery_method_id": 0, + "polygons": [ + { + "polygon_id": "1323", + "time": "30" + } + ], + "warehouse_location": { + "lat": "58.52391272075821", + "lon": "31.236791610717773" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Успешно", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/polygonv1Empty" + }, + "example": {} + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus_v1PolygonBind" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "PolygonAPI" + ] + } + }, + "/v2/posting/fbo/list": { + "post": { + "summary": "Список отправлений", + "description": "Возвращает список отправлений за указанный период времени.\n Если период больше года, вернётся ошибка `PERIOD_IS_TOO_LONG`.\n \n Дополнительно можно отфильтровать отправления по их статусу.\n", + "operationId": "PostingAPI_GetFboPostingList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingGetFboPostingListRequest" + }, + "example": { + "dir": "ASC", + "filter": { + "since": "2021-09-01T00:00:00.000Z", + "status": "", + "to": "2021-11-17T10:44:12.828Z" + }, + "limit": 5, + "offset": 0, + "translit": true, + "with": { + "analytics_data": true, + "financial_data": true, + "legal_info": false + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FboPostingListResponse" + }, + "example": { + "result": [ + { + "order_id": 354680487, + "order_number": "16965409-0014", + "posting_number": "16965409-0014-1", + "status": "delivered", + "cancel_reason_id": 0, + "created_at": "2021-09-01T00:23:45.607000Z", + "in_process_at": "2021-09-01T00:25:30.120000Z", + "legal_info": { + "company_name": "string", + "inn": "string", + "kpp": "string" + }, + "products": [ + { + "sku": 160249683, + "name": "Так говорил Омар Хайям. Жизнеописание. Афоризмы и рубайят. Классика в словах и картинках", + "quantity": 1, + "offer_id": "978-5-906864-56-7", + "price": "81.00", + "is_marketplace_buyout": true, + "digital_codes": [], + "currency_code": "RUB" + } + ], + "analytics_data": { + "city": "", + "delivery_type": "PVZ", + "is_premium": false, + "payment_type_group_name": "Карты оплаты", + "warehouse_id": 17717042026000, + "warehouse_name": "РОСТОВ-НА-ДОНУ_РФЦ", + "is_legal": false + }, + "financial_data": { + "products": [ + { + "commission_amount": 12.15, + "commission_percent": 15, + "payout": 68.85, + "product_id": 160249683, + "currency_code": "RUB", + "old_price": 115, + "price": 81, + "total_discount_value": 34, + "total_discount_percent": 29.57, + "actions": [ + "Системная виртуальная скидка селлера" + ], + "quantity": 0 + } + ] + }, + "additional_data": [] + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBO" + ] + } + }, + "/v2/posting/fbo/get": { + "post": { + "summary": "Информация об отправлении", + "description": "Возвращает информацию об отправлении по его идентификатору.", + "operationId": "PostingAPI_GetFboPosting", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingGetFboPostingRequest" + }, + "example": { + "posting_number": "50520644-0012-7", + "translit": true, + "with": { + "analytics_data": true, + "financial_data": true, + "legal_info": false + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отправлении", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FboPostingResponse" + }, + "example": { + "result": { + "order_id": 354679434, + "order_number": "50520644-0012", + "posting_number": "50520644-0012-7", + "status": "delivered", + "cancel_reason_id": 0, + "created_at": "2021-09-01T00:34:56.563Z", + "in_process_at": "2021-09-01T00:34:56.103Z", + "legal_info": { + "company_name": "string", + "inn": "string", + "kpp": "string" + }, + "products": [ + { + "sku": 254665483, + "name": "Мочалка натуральная из люфы с деревянной ручкой", + "quantity": 1, + "offer_id": "PS1033", + "price": "137.00", + "is_marketplace_buyout": true, + "digital_codes": [], + "currency_code": "RUB" + } + ], + "analytics_data": { + "city": "", + "delivery_type": "Courier", + "is_premium": false, + "payment_type_group_name": "Карты оплаты", + "warehouse_id": 15431806189000, + "warehouse_name": "ХОРУГВИНО_РФЦ", + "is_legal": false + }, + "financial_data": { + "products": [ + { + "commission_amount": 13.7, + "commission_percent": 10, + "payout": 123.3, + "product_id": 254665483, + "currency_code": "RUB", + "old_price": 198, + "price": 137, + "total_discount_value": 61, + "total_discount_percent": 30.81, + "actions": [ + "Системная виртуальная скидка селлера" + ], + "quantity": 0 + } + ] + }, + "additional_data": [] + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBO" + ] + } + }, + "/v1/posting/fbo/cancel-reason/list": { + "post": { + "summary": "Причины отмены отправлений по схеме FBO", + "description": "Возвращает список причин отмены для всех FBO-отправлений.", + "operationId": "PostingAPI_GetPostingFboCancelReasonList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Причины отмены отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CancelReasonListResponse" + }, + "example": { + "result": [ + { + "id": 352, + "title": "Товар закончился на складе продавца", + "type_id": "seller", + "is_available_for_cancellation": true + }, + { + "id": 401, + "title": "Продавец отклонил арбитраж", + "type_id": "seller", + "is_available_for_cancellation": false + }, + { + "id": 402, + "title": "Другое (вина продавца)", + "type_id": "seller", + "is_available_for_cancellation": true + }, + { + "id": 666, + "title": "Возврат из службы доставки: нет доставки в указанный регион", + "type_id": "seller", + "is_available_for_cancellation": false + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBO" + ] + } + }, + "/v1/supply-order/status/counter": { + "post": { + "summary": "Количество заявок по статусам", + "description": "Возвращает количество заявок в конкретном статусе.", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_SupplyOrderStatusCounter", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commonEmpty" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус заявки и количество заявок в этом статусе", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderStatusCounterResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/bundle": { + "post": { + "tags": [ + "FBO" + ], + "summary": "Состав поставки или заявки на поставку", + "operationId": "SupplyOrderBundle", + "description": "Используйте метод, чтобы получить товарный состав поставки или черновика заявки на поставку.\nОдним вызовом метода можно получить состав одной поставки или черновика заявки.\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyOrderBundleRequest" + }, + "example": { + "bundle_ids": [ + "string" + ], + "is_asc": true, + "limit": 100, + "query": "string", + "sort_field": "UNSPECIFIED" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Состав поставки", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyOrderBundleResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v2/supply-order/list": { + "post": { + "summary": "Список заявок на поставку на склад Ozon", + "description": "Учитываются заявки с поставкой на конкретный склад и через [виртуальный распределительный центр (вРЦ)](https://seller-edu.ozon.ru/fbo/scheme-of-work/about#чем-отличаются-процессы-при-заявках-через-врц-и-напрямую-на-склад).", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_GetSupplyOrdersListV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetSupplyOrdersListRequest" + }, + "example": { + "filter": { + "states": [ + "ORDER_STATE_COMPLETED", + "ORDER_STATE_DATA_FILLING" + ] + }, + "paging": { + "from_supply_order_id": 0, + "limit": 100 + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список заявок на поставку", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetSupplyOrdersListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/supply-order/get": { + "post": { + "summary": "Информация о заявке на поставку", + "description": "Учитываются заявки с поставкой на конкретный склад и через [виртуальный распределительный центр (вРЦ)](https://seller-edu.ozon.ru/fbo/scheme-of-work/about#чем-отличаются-процессы-при-заявках-через-врц-и-напрямую-на-склад).", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_GetSupplyOrdersV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetSupplyOrdersRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о заявке", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetSupplyOrdersResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/timeslot/get": { + "post": { + "summary": "Интервалы поставки", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_GetSupplyOrderTimeslots", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyOrderTimeslotsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список интервалов поставки", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyOrderTimeslotsResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/timeslot/update": { + "post": { + "summary": "Обновить интервал поставки", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_UpdateSupplyOrderTimeslot", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1UpdateSupplyOrderTimeslotRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Интервал обновлён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1UpdateSupplyOrderTimeslotResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/timeslot/status": { + "post": { + "summary": "Статус интервала поставки", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_GetSupplyOrderTimeslotStatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyOrderTimeslotStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус данных", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyOrderTimeslotStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/pass/create": { + "post": { + "summary": "Указать данные о водителе и автомобиле", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_SupplyOrderPassCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderPassCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Данные указаны", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderPassCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/pass/status": { + "post": { + "summary": "Статус ввода данных о водителе и автомобиле", + "tags": [ + "FBO" + ], + "operationId": "SupplyOrderAPI_SupplyOrderPassStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderPassStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderPassStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supplier/available_warehouses": { + "get": { + "summary": "Загруженность складов Ozon", + "description": "Метод возвращает список активных складов Ozon с информацией об их средней загруженности на ближайшее время.", + "tags": [ + "FBO" + ], + "operationId": "SupplierAPI_SupplierAvailableWarehouses", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Информация о загруженности складов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplierAvailableWarehousesResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/cluster/list": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftClusterList", + "summary": "Информация о кластерах и их складах", + "description": "", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftClusterListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о кластерах", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftClusterListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/warehouse/fbo/list": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftGetWarehouseFboList", + "summary": "Поиск точек для отгрузки поставки", + "description": "Используйте метод, чтобы найти точки отгрузки для кросс-докинга и прямых поставок.\n\nВы можете посмотреть адреса всех точек на карте и в виде таблицы в [Базе знаний](https://seller-edu.ozon.ru/fbo/warehouses/adresa-skladov-fbo).\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftGetWarehouseFboListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о складах", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftGetWarehouseFboListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/draft/create": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftCreate", + "summary": "Создать черновик заявки на поставку", + "description": "Создать черновик заявки на поставку — прямой или кросс-докинг, а также указать поставляемые товары.\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Черновик заявки создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/draft/create/info": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftCreateInfo", + "summary": "Информация о черновике заявки на поставку", + "description": "", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftCreateInfoRequest" + }, + "example": { + "operation_id": "0191c1c8-041c-754f-bba1-05de7741f9cb" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о черновике заявки на поставку", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftCreateInfoResponse" + }, + "example": { + "clusters": [ + { + "cluster_id": 0, + "cluster_name": "string", + "warehouses": [ + { + "bundle_ids": [ + { + "bundle_id": "string", + "is_docless": true + } + ], + "restricted_bundle_id": "string", + "status": { + "invalid_reason": "WAREHOUSE_SCORING_INVALID_REASON_UNSPECIFIED", + "is_available": true, + "state": "WAREHOUSE_SCORING_STATUS_FULL_AVAILABLE" + }, + "supply_warehouse": { + "address": "string", + "name": "string", + "warehouse_id": 0 + }, + "total_rank": 0, + "total_score": 0, + "travel_time_days": 0 + } + ] + } + ], + "draft_id": 30957724, + "errors": [ + { + "error_message": "string", + "items_validation": [ + { + "reasons": [ + "string" + ], + "sku": 0 + } + ], + "unknown_cluster_ids": [ + "string" + ] + } + ], + "status": "CALCULATION_STATUS_FAILED" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/draft/timeslot/info": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftTimeslotInfo", + "summary": "Доступные таймслоты", + "description": "Доступные таймслоты на конечных складах отгрузки.\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftTimeslotInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Таймслоты", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftTimeslotInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/draft/supply/create": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftSupplyCreate", + "summary": "Создать заявку на поставку по черновику", + "description": "", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftSupplyCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявка создана", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftSupplyCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/draft/supply/create/status": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "operationId": "SupplyDraftAPI_DraftSupplyCreateStatus", + "summary": "Информация о создании заявки на поставку", + "description": "", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftSupplyCreateStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о создании заявки на поставку", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1DraftSupplyCreateStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/cargoes/create": { + "post": { + "summary": "Установка грузомест", + "description": "Используйте метод, чтобы передать грузоместа и товарный состав в заявку на поставку.\n", + "operationId": "CargoesAPI_CargoesCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Грузоместа установлены", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "FboSupplyRequest" + ] + } + }, + "/v1/cargoes/create/info": { + "post": { + "summary": "Получить информацию по установке грузомест", + "description": "Используйте метод, чтобы получить информацию по установленным грузоместам.\n", + "operationId": "CargoesAPI_CargoesCreateInfo", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesCreateInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesCreateInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "FboSupplyRequest" + ] + } + }, + "/v1/cargoes/delete": { + "post": { + "description": "Метод для удаления грузомест в заявке на поставку.\n\nЧтобы проверить статус удаления, используйте метод [/v1/cargoes/delete/status](#operation/CargoesAPI_CargoesDeleteStatus).\n", + "tags": [ + "FboSupplyRequest" + ], + "summary": "Удалить грузоместо в заявке на поставку", + "operationId": "CargoesAPI_CargoesDelete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesDeleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Грузоместо удалено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesDeleteResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/cargoes/delete/status": { + "post": { + "description": "Метод для получения статуса удаления грузомест в заявке на поставку.", + "tags": [ + "FboSupplyRequest" + ], + "summary": "Информация о статусе удаления грузоместа", + "operationId": "CargoesAPI_CargoesDeleteStatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesDeleteStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус удаления грузоместа", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesDeleteStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/cargoes/rules/get": { + "post": { + "description": "Метод для получения чек-листа с правилами по установке грузомест.", + "tags": [ + "FboSupplyRequest" + ], + "summary": "Чек-лист по установке грузомест FBO", + "operationId": "CargoesAPI_CargoesRulesGet", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesRulesGetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Чек-лист по установке грузомест", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesRulesGetResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/cargoes-label/create": { + "post": { + "summary": "Сгенерировать этикетки для грузомест", + "description": "Используйте метод, чтобы сгенерировать этикетки для грузомест из заявки на поставку.\n", + "operationId": "CargoesAPI_CargoesLabelCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesLabelCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesLabelCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "FboSupplyRequest" + ] + } + }, + "/v1/cargoes-label/get": { + "post": { + "summary": "Получить идентификатор этикетки для грузомест", + "description": "Используйте метод, чтобы получить статус формирования этикеток и идентификатор файла с ними.\n", + "operationId": "CargoesAPI_CargoesLabelGet", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesLabelGetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Этикетка для грузомест", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CargoesLabelGetResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "FboSupplyRequest" + ] + } + }, + "/v1/cargoes-label/file/{file_guid}": { + "get": { + "summary": "Получить PDF с этикетками грузовых мест", + "description": "", + "operationId": "CargoesAPI_CargoesLabelFile", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Этикетки грузовых мест" + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "FboSupplyRequest" + ] + } + }, + "/v1/supply-order/cancel": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "summary": "Отменить заявку на поставку", + "description": null, + "operationId": "SupplyOrderAPI_SupplyOrderCancel", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderCancelRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отмена заявки на поставку в процессе", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderCancelResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/cancel/status": { + "post": { + "tags": [ + "FboSupplyRequest" + ], + "summary": "Получить статус отмены заявки на поставку", + "description": null, + "operationId": "SupplyOrderAPI_SupplyOrderCancelStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderCancelStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус отмены заявки на поставку", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderCancelStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/content/update": { + "post": { + "description": "Метод для редактирования товарного состава в заявке на поставку.\n\nЧтобы проверить статус редактирования, используйте метод [/v1/supply-order/content/update/status](#operation/SupplyOrderAPI_SupplyOrderContentUpdateStatus).\n", + "tags": [ + "FboSupplyRequest" + ], + "summary": "Редактирование товарного состава", + "operationId": "SupplyOrderAPI_SupplyOrderContentUpdate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Товарный состав обновлён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/supply-order/content/update/status": { + "post": { + "description": "Метод для получения статуса редактирования товарного состава.", + "tags": [ + "FboSupplyRequest" + ], + "summary": "Информация о статусе редактирования товарного состава", + "operationId": "SupplyOrderAPI_SupplyOrderContentUpdateStatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус редактирования", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v5/fbs/posting/product/exemplar/create-or-get": { + "post": { + "tags": [ + "FBS&rFBSMarks" + ], + "summary": "Получить информацию об экземплярах", + "description": "Метод для получения информации по экземплярам товаров из отправления.\nИспользуйте метод для получения `exemplar_id`.\n", + "operationId": "PostingAPI_FbsPostingProductExemplarCreateOrGet", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarCreateOrGetV5Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Данные экземпляров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarCreateOrGetV5Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v4/fbs/posting/product/exemplar/validate": { + "post": { + "summary": "Валидация кодов маркировки", + "description": "Метод для проверки кодов на соответствие требованиям по количеству и составу символов.
\n[Подробнее об ошибках в Базе знаний продавца](https://seller-edu.ozon.ru/fbs/ozon-logistika/markirovka#какие-могут-возникать-ошибки-при-проверке-кода-маркировки)\n\nЕсли у вас нет номера грузовой таможенной декларации (ГТД), вы можете его не указывать.\n", + "operationId": "PostingAPI_FbsPostingProductExemplarValidate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv4FbsPostingProductExemplarValidateRequest" + }, + "example": { + "posting_number": "23281294-0063-2", + "products": [ + { + "exemplars": [ + { + "gtd": "", + "mandatory_mark": "010290000151642731tVMohkbfFgunB", + "jw_uin": "" + } + ], + "product_id": 476925391 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат валидации", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv4FbsPostingProductExemplarValidateResponse" + }, + "example": { + "result": { + "products": [ + { + "product_id": 476925391, + "exemplars": [ + { + "mandatory_mark": "010290000151642731tVMohkbfFgunB", + "jw_uin": "", + "gtd": "", + "valid": true, + "errors": [] + } + ], + "valid": true, + "error": "" + } + ] + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v4/fbs/posting/product/exemplar/set": { + "post": { + "summary": "Проверить и сохранить данные экземпляров", + "description": "\n\n\nАсинхронный метод:\n- для проверки наличия экземпляров в обороте в системе «Честный ЗНАК»;\n- для сохранения данных экземпляров. \n\nЧтобы получить результаты проверок, используйте метод [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus).\n\nПри необходимости укажите номер грузовой таможенной декларации в параметре `gtd`. Если его нет, передайте значение `is_gtd_absent = true`.\n\nЕсли у вас несколько одинаковых товаров в отправлении, укажите один `product_id` и массив `exemplars` для каждого товара из отправления.\n\nВсегда передавайте полный набор данных по экземплярам и продуктам. \n\nНапример, в вашей системе 10 экземпляров. Вы передали их для проверки и сохранения. Потом добавили в своей системе ещё 60 экземпляров.\nПри повторной передаче экземпляров для проверки и сохранения укажите все экземпляры: и старые, и только что добавленные.\n", + "operationId": "PostingAPI_SetProductExemplar", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/fbsv4SetProductExemplarRequest" + }, + "example": { + "posting_number": "23281294-0063-2", + "products": [ + { + "exemplars": [ + { + "gtd": "", + "is_gtd_absent": true, + "jw_uin": "", + "mandatory_mark": "010290000151642731tVMohkbfFgunB" + } + ], + "product_id": 476925391 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Запрос обработан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/fbsv4SetProductExemplarResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v5/fbs/posting/product/exemplar/set": { + "post": { + "tags": [ + "FBS&rFBSMarks" + ], + "summary": "Проверить и сохранить данные экземпляров (версия 5)", + "description": "Асинхронный метод:\n- для проверки наличия экземпляров в обороте в системе «Честный ЗНАК»;\n- для сохранения данных экземпляров. \n\nИспользуйте метод только для отправлений в статусе `awaiting_packaging`, иначе вы получите ошибку `INVALID_POSTING_STATE`.\n\nЧтобы получить результаты проверок, используйте метод [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus). \nДля получения данных о созданных экземплярах, используйте метод [/v5/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGet).\n\nПри необходимости укажите номер грузовой таможенной декларации в параметре `gtd`. \nЕсли его нет, передайте значение `is_gtd_absent = true`.\n\nЕсли у вас несколько одинаковых товаров в отправлении, укажите один `product_id` и массив `exemplars` для каждого товара из отправления.\n\nВсегда передавайте полный набор данных по экземплярам и продуктам. \n\nНапример, в вашей системе 10 экземпляров. \nВы передали их для проверки и сохранения. \nПотом добавили в своей системе ещё 60 экземпляров.\nПри повторной передаче экземпляров для проверки и сохранения укажите все экземпляры: и старые, и только что добавленные.\n\nОтличие от [/v4/fbs/posting/product/exemplar/set](#operation/PostingAPI_SetProductExemplar) — вы можете передать в запросе больше информации по экземплярам.\n\nКод ответа 200 не гарантирует, что данные об экземплярах приняты. \nОн указывает, что создана задача для добавления информации. \nЧтобы проверить статус задачи, используйте метод [/v4/fbs/posting/product/exemplar/status](#operation/PostingAPI_GetProductExemplarStatus).\n", + "operationId": "PostingAPI_FbsPostingProductExemplarSet", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarSetV5Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Запрос обработан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarSetV5Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v4/fbs/posting/product/exemplar/status": { + "post": { + "summary": "Получить статус добавления экземпляров", + "description": "Метод для получения статусов добавления экземпляров, переданных в методе [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet). \nТакже возвращает данные по этим экземплярам. \n", + "operationId": "PostingAPI_GetProductExemplarStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/fbsv4GetProductExemplarStatusRequest" + }, + "example": { + "posting_number": "23281294-0063-2" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статусы проверки экземпляров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/fbsv4GetProductExemplarStatusResponse" + }, + "example": { + "posting_number": "23281294-0063-2", + "products": [ + { + "exemplars": [ + { + "exemplar_id": "", + "gtd": "", + "gtd_check_status": "passed", + "gtd_error_codes": [], + "is_gtd_absent": true, + "is_rnpt_absent": true, + "jw_uin": "", + "jw_uin_check_status": "passed", + "jw_uin_error_codes": [], + "mandatory_mark": "010290000151642731tVMohkbfFgunB", + "mandatory_mark_check_status": "passed", + "mandatory_mark_error_codes": [], + "rnpt": "", + "rnpt_check_status": "passed", + "rnpt_error_codes": [] + } + ], + "product_id": 476925391 + } + ], + "status": "ship_available" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v4/posting/fbs/ship": { + "post": { + "tags": [ + "FBS&rFBSMarks" + ], + "summary": "Собрать заказ (версия 4)", + "description": "Делит заказ на отправления и переводит его в статус `awaiting_deliver`.\n\nКаждый элемент в `packages` может содержать несколько элементов `products` или отправлений. \nКаждый элемент в `products` — это товар, включённый в данное отправление.\n\nРазделить заказ нужно, если:\n - товары не помещаются в одну упаковку,\n - товары нельзя сложить в одну упаковку.\n \nЧтобы разделить заказ, передайте в массиве `packages` несколько объектов.\n\nПример запроса, когда заказ разделять не нужно: 2 товара будут в одном отправлении.\n```\n{\n \"packages\": [\n {\n \"products\": [\n {\n \"product_id\": 185479045,\n \"quantity\": 2\n }\n ]\n }\n ],\n \"posting_number\": \"89491381-0072-1\"\n}\n```\n\nПример запроса, когда заказ нужно разделить: каждый товар будет в отдельном отправлении.\n\n```\n{\n \"packages\": [\n {\n \"products\": [\n {\n \"product_id\": 185479045,\n \"quantity\": 1\n }\n ]\n },\n {\n \"products\": [\n {\n \"product_id\": 185479045,\n \"quantity\": 1\n }\n ]\n }\n ],\n \"posting_number\": \"89491381-0072-1\"\n} \n``` \n\nЧтобы внести информацию по экземплярам, используйте метод [/v5/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSet).\n", + "operationId": "PostingAPI_ShipFbsPostingV4", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/fbsv4FbsPostingShipV4Request" + }, + "example": { + "packages": [ + { + "products": [ + { + "product_id": 185479045, + "quantity": 1 + } + ] + } + ], + "posting_number": "89491381-0072-1", + "with": { + "additional_data": true + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заказ собран", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/fbsv4FbsPostingShipV4Response" + }, + "example": { + "additional_data": [ + { + "posting_number": "89491381-0072-1", + "products": [ + { + "currency_code": "RUB", + "mandatory_mark": [ + "123" + ], + "name": "string", + "offer_id": "17125", + "price": "2000", + "quantity": 1, + "sku": 149618972 + } + ] + } + ], + "result": [ + "89491381-0072-1" + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v4/posting/fbs/ship/package": { + "post": { + "tags": [ + "FBS&rFBSMarks" + ], + "summary": "Частичная сборка отправления (версия 4)", + "description": "Если в запросе передать часть товаров из отправления, метод разделит первичное отправление на две части. \nВ первичном несобранном отправлении останется часть товаров, которую не передали в запросе.\n\nПо умолчанию статус созданных отправлений `awaiting_packaging` — ожидает сборки.\n\nСтатус изначального отправления изменится только после изменения статуса отправлений, на которые он разделился.\n", + "operationId": "PostingAPI_ShipFbsPostingPackage", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v4FbsPostingShipPackageV4Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отправление собрано", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v4FbsPostingShipPackageV4Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v6/fbs/posting/product/exemplar/set": { + "post": { + "summary": "Проверить и сохранить данные экземпляров", + "description": "Асинхронный метод:\n- для проверки наличия экземпляров в обороте в системе «Честный ЗНАК»;\n- для сохранения данных экземпляров. \n\nЧтобы получить результаты проверок, используйте метод [/v5/fbs/posting/product/exemplar/status](#operation/PostingAPI_FbsPostingProductExemplarStatusV5). \nДля получения данных о созданных экземплярах, используйте метод [/v6/fbs/posting/product/exemplar/create-or-get](#operation/PostingAPI_FbsPostingProductExemplarCreateOrGetV6).\n\nЕсли у вас несколько одинаковых товаров в отправлении, укажите один `product_id` и массив `exemplars` для каждого товара из отправления.\n\nВсегда передавайте полный набор данных по экземплярам и продуктам. \n\nНапример, в вашей системе 10 экземпляров. \nВы передали их для проверки и сохранения. \nПотом добавили в своей системе ещё 60 экземпляров.\nПри повторной передаче экземпляров для проверки и сохранения укажите все экземпляры: и старые, и только что добавленные.\n\nКод ответа 200 не гарантирует, что данные об экземплярах приняты. \nОн указывает, что создана задача для добавления информации. \nЧтобы проверить статус задачи, используйте метод [/v5/fbs/posting/product/exemplar/status](#operation/PostingAPI_FbsPostingProductExemplarStatusV5).\n", + "operationId": "PostingAPI_FbsPostingProductExemplarSetV6", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v6FbsPostingProductExemplarSetV6Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Запрос обработан" + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v6/fbs/posting/product/exemplar/create-or-get": { + "post": { + "summary": "Получить данные созданных экземпляров", + "description": "Метод для получения информации по экземплярам товаров из отправления, переданных в методе [/v6/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSetV6).\n\nИспользуйте метод для получения `exemplar_id`.\n", + "operationId": "PostingAPI_FbsPostingProductExemplarCreateOrGetV6", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v6FbsPostingProductExemplarCreateOrGetV6Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Данные экземпляров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v6FbsPostingProductExemplarCreateOrGetV6Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v5/fbs/posting/product/exemplar/status": { + "post": { + "summary": "Получить статус добавления экземпляров", + "description": "Метод для получения статусов добавления экземпляров, переданных в методе [/v6/fbs/posting/product/exemplar/set](PostingAPI_FbsPostingProductExemplarSetV6). Также возвращает данные по этим экземплярам.\n", + "operationId": "PostingAPI_FbsPostingProductExemplarStatusV5", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarStatusV5Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статусы проверки экземпляров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarStatusV5Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v5/fbs/posting/product/exemplar/validate": { + "post": { + "summary": "Валидация кодов маркировки", + "description": "Метод для проверки кодов на соответствие требованиям системы «Честный ЗНАК» по количеству и составу символов.\n\nЕсли у вас нет номера грузовой таможенной декларации (ГТД), вы можете его не указывать.\n", + "operationId": "PostingAPI_FbsPostingProductExemplarValidateV5", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат валидации", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v1/fbs/posting/product/exemplar/update": { + "post": { + "summary": "Обновить данные экземпляров", + "description": "Используйте метод после передачи информации по экземплярам методом [/v6/fbs/posting/product/exemplar/set](#operation/PostingAPI_FbsPostingProductExemplarSetV6), чтобы сохранить обновлённые данные по экземплярам для отправлений в статусе «Ожидает отгрузки».\n", + "operationId": "PostingAPI_FbsPostingProductExemplarUpdate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1FbsPostingProductExemplarUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Данные обновлены" + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS&rFBSMarks" + ] + } + }, + "/v1/carriage/create": { + "post": { + "summary": "Создание отгрузки", + "description": "\n\n\nИспользуйте метод для создания первой FBS отгрузки. В неё попадут все отправления со статусом «Готов к отгрузке». Созданная отгрузка получит статус `new`.\n\nДля отгрузки в статусе `new` можно перезаписать состав отправлений методом [/v1/carriage/set-postings](#operation/CarriageAPI_SetPostings). Если из отгрузки исключить часть отправлений, они могут попасть в следующую отгрузку. \n\nЧтобы получить список отправлений в отгрузке, используйте метод [/v2/posting/fbs/act/get-postings](#operation/PostingAPI_ActPostingList).\n", + "operationId": "CarriageAPI_CarriageCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отгрузке", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageCreateResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "DeliveryFBS" + ] + } + }, + "/v1/carriage/approve": { + "post": { + "summary": "Подтверждение отгрузки", + "description": "\nИспользуйте метод, чтобы подтвердить отгрузку после её создания.\nПосле подтверждения отгрузка перейдёт в статус «Сформирована».\n\nПосле подтверждения отгрузки вы можете получить лист отгрузки методом [/v2/posting/fbs/digital/act/get-pdf](#operation/PostingAPI_PostingFBSGetDigitalAct) и штрихкод отгрузки методом [/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode). \n", + "operationId": "CarriageAPI_CarriageApprove", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageApproveRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отгрузка подтверждена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageApproveResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "DeliveryFBS" + ] + } + }, + "/v1/carriage/delivery/list": { + "post": { + "summary": "Список методов доставки и отгрузок", + "description": "\nИспользуйте метод, чтобы получить список созданных отгрузок для метода доставки и их статусы. \n", + "operationId": "CarriageAPI_CarriageDeliveryList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageDeliveryListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список методов и отгрузок", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageDeliveryListResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "DeliveryFBS" + ] + } + }, + "/v2/posting/fbs/act/create": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Подтвердить отгрузку и создать документы", + "description": "Подтверждает отгрузку и запускает формирование транспортной накладной и штрихкода для отгрузки.\nДля продавцов из России также запускается формирование листа отгрузки, а для продавцов из СНГ — акта приёма-передачи.\n\nЧтобы сформировать и получить документы, переведите отправление в статус `awaiting_deliver`.\n", + "operationId": "PostingAPI_PostingFBSActCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSActCreateRequest" + }, + "example": { + "containers_count": 1, + "delivery_method_id": 230039077005, + "departure_date": "2022-06-10T11:42:06.444Z" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отгрузка подтверждена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSActCreateResponse" + }, + "example": { + "result": { + "id": 5819327210249 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/carriage-available/list": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Список доступных перевозок", + "description": "Метод для получения перевозок, по которым нужно распечатать штрихкод для отгрузки и документы:\n- для продацов из России — лист отгрузки и транспортную накладную;\n- для продавцов из СНГ — акт и транспортную накладную.\n", + "operationId": "PostingAPI_GetCarriageAvailableList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv1GetCarriageAvailableListRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список перевозок", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv1GetCarriageAvailableListResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/carriage/get": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Информация о перевозке", + "operationId": "CarriageGet", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/carriageCarriageGetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о перевозке", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/carriageCarriageGetResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/fbs/split": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "operationId": "FbsSplit", + "summary": "Разделить заказ на отправления без сборки", + "requestBody": { + "$ref": "#/components/requestBodies/v1PostingFbsSplitRequest" + }, + "responses": { + "200": { + "description": "Заказ разделён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFbsSplitResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/act/get-postings": { + "post": { + "summary": "Список отправлений в акте", + "description": "Возвращает список отправлений в акте по его идентификатору.", + "operationId": "PostingAPI_ActPostingList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSActGetPostingsRequest" + }, + "example": { + "id": 900000250859000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSActGetPostingsResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "DeliveryFBS" + ] + } + }, + "/v2/posting/fbs/act/get-container-labels": { + "post": { + "summary": "Этикетки для грузового места", + "description": "Метод создает этикетки для грузового места.", + "operationId": "PostingAPI_PostingFBSActGetContainerLabels", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSActGetContainerLabelsRequest" + }, + "example": { + "id": 295662811 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Этикетки для грузового места", + "content": { + "application/pdf": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSActGetContainerLabelsResponse" + }, + "example": { + "content_type": "application/pdf", + "file_name": "carriage-containers-20903594.pdf", + "file_content": "%PDF-1.4\n%âãÏÓ\n2 0 obj\n<>stream\nxœµ}[ێ\u001c·\u0011}Ÿ¯èç\u0000¦Èb\u0015/€ @»+\u0019y0Ë\u0002ù\u0000%q\u0010X\u0001ìü?Ãn²ÉéfÍì(ò®\u001duMÝ/<Å\u0019\u001bòyýY,0Ã?=[ccyýåëå×K¡§˜\u000bAÂâ؉‰x\u001d—ßþqùÛ\u001f–ÿà-dœp¢UÔø\u001aün)¿ùqÙ^üöóåݏùù¿«X¶i\t²JúçåÏøýõ’Ù$Gxn—²\u0011&\u000f¥ÉCj¾§2‹aŽ‘æºr&­^™˜,~hI²)ŒF¤ùŒ7¥íu£:oˆÊ\u0013Ùȹ0ûLdB\u001a\u0018y§xkˆ;ë<^Lv›)%¼)í\u0014ö†cyó”ÎX:\u0018ÚõI‰Xå\u0015\u0013╏\r…õɌ5d“ýÆ\u0016ŠÊ!6Ñpysš\u001a”ÄXYÃ1“š­‰Ô\r:H†©(%U´³bR" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "DeliveryFBS" + ] + } + }, + "/v2/posting/fbs/act/get-barcode": { + "post": { + "summary": "Штрихкод для отгрузки отправления", + "description": "Метод для получения штрихкода, который нужно показать в пункте выдачи или сортировочном центре при отгрузке отправления.", + "operationId": "PostingAPI_PostingFBSGetBarcode", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSGetBarcodeRequest" + }, + "example": { + "id": "295662811" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Штрихкод для отправления", + "content": { + "image/png": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSGetBarcodeResponse" + }, + "example": { + "content_type": "image/png", + "file_name": "20913984_barcode.png", + "file_content": "‰PNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0003\u0010\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000íZ\u000e'\u0000\u0000\u0002pIDATxœìÕÁJ\u00031\u0014@Q+þÿ/×E\u0017\u000e¼›\u0010u¡-ç¬$£Éˌp?î÷·§t» }ýü¸ÃcåzŸ¹2w˜OWû\\Ϛ뫧×Ùö;œì|rÇýßîç¼úî{˜§¬N?™í7oì•v¸®Ÿµ¹Ãù„û•¹¾ÿÏ9ÿî?›až¸ºéê7O&߿É9çÉ\u000eÏáý¯\u0007\u0000à\u0012\b\u0000’@\u0000\u0004\u0002€$\u0010\u0000$\u0000 \t\u0004\u0000I \u0000H\u0002\u0001@\u0012\b\u0000’@\u0000\u0004\u0002€$\u0010\u0000$\u0000 \t\u0004\u0000I \u0000H\u0002\u0001@\u0012\b\u0000’@\u0000\u0004\u0002€$\u0010\u0000$\u0000 \t\u0004\u0000I \u0000H\u0002\u0001@\u0012\b\u0000’@\u0000\u0004\u0002€$\u0010\u0000$\u0000 \t\u0004\u0000I \u0000H\u0002\u0001@\u0012\b\u0000’@\u0000\u0004\u0002€$\u0010\u0000" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "DeliveryFBS" + ] + } + }, + "/v2/posting/fbs/act/get-barcode/text": { + "post": { + "summary": "Значение штрихкода для отгрузки отправления", + "description": "Используйте этот метод, чтобы получить штрихкод из ответа\n[/v2/posting/fbs/act/get-barcode](#operation/PostingAPI_PostingFBSGetBarcode) в текстовом виде.\n", + "tags": [ + "DeliveryFBS" + ], + "operationId": "PostingAPI_PostingFBSGetBarcodeText", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSGetBarcodeRequest" + }, + "example": { + "id": "295662811" + } + } + } + }, + "responses": { + "200": { + "description": "Значение штрихкода", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSGetBarcodeTextResponse" + }, + "example": { + "result": "%303%24276481394" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/digital/act/check-status": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Статус формирования накладной", + "operationId": "PostingAPI_PostingFBSDigitalActCheckStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSDigitalActCheckStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус формирования накладной", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSDigitalActCheckStatusResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/act/get-pdf": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Получить PDF c документами", + "description": "С помощью метода можно получить:\n- продацам из России — лист отгрузки и транспортную накладную;\n- продавцам из СНГ — акт и транспортную накладную.\n", + "operationId": "PostingAPI_PostingFBSGetAct", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSGetActRequest" + }, + "example": { + "id": 22435521842000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Документы", + "content": { + "application/pdf": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSGetActResponse" + }, + "example": { + "content_type": "application/pdf", + "file_name": "20928233.pdf", + "file_content": "%PDF-1.4\n%âãÏÓ\n2 0 obj\n<>stream\nxœí }[ ¯ä:vÞ{ ÿŠz\u000e{ { { }\\\\x1d\\\\xde/\\\\xc0{ } } }€ ]µw\u000fò` “9€ój8ö\u0000†í$¶\u0003ä燔D‰º|\"—еo ]ÝØ})•D‘\\\\÷õ­NHßÿº°ðûoºì¿NñÎsïÝå\u001fþõÇÿù\u0011¯\u000be}ǍÑ\u0017©™í¤4âòïÿøãïþËåßÂ7dÇ\u0014÷BðþYËÿ…GðKüýßÿt\u0019þñïýñ۟äå¯ÿÑ?Ùq}\u0011’Éø¸ê?añ«Ã?ú¯ªøÕN_”\r8®.œ9\u0013¿þ—\u001fáÜ]ò?íÛ\u000fç\u0011•½Há/V°ø\"qÄø‰–«O”\\G\u000bµþDëõ'έ>ñ|}——ëïpÆÅæ#³\u0018?ܣDxM—>èT?¹ìÏ8ï͇aÞ×ßüöß.øÃo{û¯¯" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/act/list": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Список актов по отгрузкам", + "description": "Возвращает список актов по отгрузкам с возможностью отфильтровать отгрузки по периоду, статусу и типу интеграции.", + "operationId": "PostingAPI_FbsActList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSActListRequest" + }, + "example": { + "filter": { + "date_from": "2021-08-04", + "date_to": "2022-08-04", + "integration_type": "ozon", + "status": [ + "delivered" + ] + }, + "limit": 100 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список актов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSActListResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/digital/act/get-pdf": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Получить лист отгрузки по перевозке", + "description": "Вы можете получить документы, если в ответе метода [/v2/posting/fbs/digital/act/check-status](#operation/PostingAPI_PostingFBSDigitalActCheckStatus) был один из статусов:\n- `FORMED` — перевозка сформирована успешно,\n- `CONFIRMED` — перевозка подтверждена Ozon,\n- `CONFIRMED_WITH_MISMATCH` — перевозка принята Ozon с расхождениями.\n", + "operationId": "PostingAPI_PostingFBSGetDigitalAct", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSGetDigitalActRequest" + }, + "example": { + "id": 900000250859000, + "doc_type": "act_of_acceptance" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Файл с документом", + "content": { + "application/pdf": { + "schema": { + "$ref": "#/components/schemas/v2PostingFBSGetDigitalActResponse" + }, + "example": { + "content_type": "application/pdf", + "file_name": "20816409_act_of_mismatch.pdf", + "file_content": "%PDF-1.4\n%ÓôÌá\n1 0 obj\n<<\n/Creator(Chromium)\n/Producer(PDFsharp 1.50.5147 \\([www.pdfsharp.com|http://www.pdfsharp.com/]\\) \\(Original: Skia/PDF m103\\))\n/CreationDate(D:20230625092529+00'00')\n/ModDate(D:20230625092529+00'00')\n>>\nendobj\n2 0 obj\n<<\n/Type/Page\n/Resources\n<<\n/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]\n/ExtGState\n<<\n/G3 3 0 R\n/G8 8 0 R\n>>\n/XObject\n<<\n/X6 6 0 R\n/X7 7 0 R\n>>\n/Font\n<<\n/F4 4 0 R\n/F5 5 0 R\n>>\n>>\n/MediaBox[0 0 594.96 841.92]\n/Contents 9 0 R\n/StructParents 0\n/Parent 13 0 R\n/Group\n<<\n/CS/DeviceRGB\n/S/Transparency\n>>\n>>\nendobj\n3 0 obj\n<<\n/ca 1\n/BM/Normal\n>>\nendobj\n4 0 obj\n<<\n/Type/Font\n/Subtype/Type0\n/BaseFont/AAAAAA+LiberationSans\n/Encoding/Identity-H\n/DescendantFonts[160 0 R]\n/ToUnicode 161 0 R\n>>\nendobj\n5 0 obj\n<<\n/Type/Font\n/Subtype/Type0\n/BaseFont/BAAAAA+LiberationSans-Bold\n/Encoding/Identity-H\n/DescendantFonts[164 0" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/act/check-status": { + "post": { + "tags": [ + "DeliveryFBS" + ], + "summary": "Статус отгрузки и документов", + "description": "Возвращает статус формирования штрихкода для отгрузки и документов:\n- для продавцов из России — транспортной накладной и листа отгрузки;\n- для продавцов из СНГ — транспортной накладной и акта приёма-передачи.\n", + "operationId": "PostingAPI_PostingFBSActCheckStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSActCheckStatusRequest" + }, + "example": { + "id": 900000250859000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус отгрузки и документов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSActCheckStatusResponse" + }, + "example": { + "result": { + "added_to_act": [ + "true" + ], + "removed_from_act": [ + "false" + ], + "status": "ready" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/fbs/posting/tracking-number/set": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Добавить трек-номера", + "description": "Добавить трек-номера к отправлениям. Вы можете передать до 20 трек-номеров за раз.", + "operationId": "PostingAPI_FbsPostingTrackingNumberSet", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingTrackingNumberSetRequest" + }, + "example": { + "tracking_numbers": [ + { + "posting_number": "48173252-0033-2", + "tracking_number": "123123123" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Трек-номер добавлен", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingMoveStatusResponse" + }, + "example": { + "result": [ + { + "error": "", + "posting_number": "48173252-0033-2", + "result": true + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/fbs/posting/sent-by-seller": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Изменить статус на «Отправлено продавцом»", + "description": "Перевести отправление в статус «Отправлено продавцом». Статус доступен только продавцам с первой милей, продающим из-за рубежа.", + "operationId": "PostingAPI_FbsPostingSentbyseller", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingSentbysellerRequest" + }, + "example": { + "posting_number": [ + "47173252-0073-1" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingSentbysellerResponse" + }, + "example": { + "result": [ + { + "error": null, + "posting_number": "47173252-0073-1", + "result": true + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/fbs/posting/delivering": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Изменить статус на «Доставляется»", + "description": "Перевести отправление в статус «Доставляется», если используется сторонняя служба доставки.", + "operationId": "PostingAPI_FbsPostingDelivering", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingDeliveringRequest" + }, + "example": { + "posting_number": [ + "33920157-0018-1" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingMoveStatusResponse" + }, + "example": { + "result": [ + { + "error": [], + "posting_number": "33920157-0018-1", + "result": true + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/fbs/posting/last-mile": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Изменить статус на «Последняя миля»", + "description": "Перевести отправление в статус «Последняя миля», если используется сторонняя служба доставки.", + "operationId": "PostingAPI_FbsPostingLastMile", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingLastMileRequest" + }, + "example": { + "posting_number": [ + "48173252-0033-2" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingMoveStatusResponse" + }, + "example": { + "result": [ + { + "error": [], + "posting_number": "48173252-0033-2", + "result": true + } + ] + } + } + } + }, + "400": { + "description": "Invalid parameter", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Response not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Request conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/fbs/posting/delivered": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Изменить статус на «Доставлено»", + "description": "Перевести отправление в статус «Доставлено», если используется сторонняя служба доставки.", + "operationId": "PostingAPI_FbsPostingDelivered", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingDeliveredRequest" + }, + "example": { + "posting_number": [ + "48173252-0033-2" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingFbsPostingMoveStatusResponse" + }, + "example": { + "result": [ + { + "error": [], + "posting_number": "48173252-0033-2", + "result": true + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/fbs/timeslot/change-restrictions": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Доступные даты для переноса доставки", + "description": "Метод для получения доступных дат для переноса доставки и количества доступных переносов.\n", + "operationId": "PostingAPI_PostingTimeslotChangeRestrictions", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFbsTimeslotChangeRestrictionsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Доступные даты и количество", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFbsTimeslotChangeRestrictionsResponse" + }, + "example": { + "delivery_interval": { + "begin": "2023-03-27T08:43:05.658Z", + "end": "2023-03-27T08:43:05.658Z" + }, + "remaining_changes_count": 0 + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/fbs/timeslot/set": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Перенести дату доставки", + "description": "Вы можете изменить дату доставки отправления не больше двух раз.\n", + "operationId": "PostingAPI_SetPostingTimeslot", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFbsTimeslotSetRequest" + }, + "example": { + "new_timeslot": { + "from": "2023-03-25T08:51:56.932Z", + "to": "2023-03-25T08:51:56.932Z" + }, + "posting_number": "string" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFbsTimeslotSetResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/cutoff/set": { + "post": { + "tags": [ + "DeliveryrFBS" + ], + "summary": "Уточнить дату отгрузки отправления", + "description": "Метод для отправлений, которые доставляет продавец или неинтегрированный перевозчик.\n", + "operationId": "PostingAPI_SetPostingCutoff", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SetPostingCutoffRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат уточнения даты", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SetPostingCutoffResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v3/posting/fbs/unfulfilled/list": { + "post": { + "summary": "Список необработанных отправлений (версия 3)", + "description": "Возвращает список необработанных отправлений за указанный период времени — он должен быть не больше одного года.\n\nВозможные статусы отправлений:\n- `awaiting_registration` — ожидает регистрации,\n- `acceptance_in_progress` — идёт приёмка,\n- `awaiting_approve` — ожидает подтверждения,\n- `awaiting_packaging` — ожидает упаковки,\n- `awaiting_deliver` — ожидает отгрузки,\n- `arbitration` — арбитраж,\n- `client_arbitration` — клиентский арбитраж доставки,\n- `delivering` — доставляется,\n- `driver_pickup` — у водителя,\n- `cancelled` — отменено,\n- `not_accepted` — не принят на сортировочном центре,\n- `sent_by_seller` — отправлено продавцом.\n\nЧтобы получать актуальную дату отгрузки, регулярно обновляйте информацию об отправлениях или подключите [пуш-уведомления](#tag/push_start).\n", + "operationId": "PostingAPI_GetFbsPostingUnfulfilledList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv3GetFbsPostingUnfulfilledListRequest" + }, + "example": { + "dir": "ASC", + "filter": { + "cutoff_from": "2021-08-24T14:15:22Z", + "cutoff_to": "2021-08-31T14:15:22Z", + "delivery_method_id": [], + "is_quantum": false, + "provider_id": [], + "status": "awaiting_packaging", + "warehouse_id": [] + }, + "limit": 100, + "offset": 0, + "with": { + "analytics_data": true, + "barcodes": true, + "financial_data": true, + "legal_info": false, + "translit": true + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список необработанных отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv3GetFbsPostingUnfulfilledListResponse" + }, + "example": { + "result": { + "postings": [ + { + "posting_number": "23713478-0018-3", + "order_id": 559293114, + "order_number": "33713378-0051", + "pickup_code_verified_at": "2025-01-17T11:03:00.124Z", + "status": "awaiting_packaging", + "delivery_method": { + "id": 15110442724000, + "name": "Ozon Логистика курьеру, Москва", + "warehouse_id": 15110442724000, + "warehouse": "Склад на Ленина", + "tpl_provider_id": 24, + "tpl_provider": "Ozon Логистика" + }, + "tracking_number": "", + "tpl_integration_type": "ozon", + "in_process_at": "2021-08-25T10:48:38Z", + "shipment_date": "2021-08-26T10:00:00Z", + "delivering_date": null, + "optional": { + "products_with_possible_mandatory_mark": [ + 0 + ] + }, + "cancellation": { + "cancel_reason_id": 0, + "cancel_reason": "", + "cancellation_type": "", + "cancelled_after_ship": false, + "affect_cancellation_rating": false, + "cancellation_initiator": "" + }, + "customer": null, + "quantum_id": 0, + "products": [ + { + "price": "1259", + "currency_code": "RUB", + "is_blr_traceable": true, + "is_marketplace_buyout": true, + "offer_id": "УТ-0001365", + "name": "Мяч, цвет: черный, 5 кг", + "sku": 140048123, + "quantity": 1, + "products_requiring_jw_uin": "0" + } + ], + "addressee": null, + "barcodes": { + "upper_barcode": "%101%806044518", + "lower_barcode": "23024930500000" + }, + "analytics_data": { + "region": "Санкт-Петербург", + "city": "Санкт-Петербург", + "delivery_type": "PVZ", + "is_premium": false, + "payment_type_group_name": "Карты оплаты", + "warehouse_id": 15110442724000, + "warehouse": "Склад на Ленина", + "tpl_provider_id": 24, + "tpl_provider": "Ozon Логистика", + "delivery_date_begin": "2022-08-28T14:00:00Z", + "delivery_date_end": "2022-08-28T18:00:00Z", + "is_legal": false + }, + "financial_data": { + "products": [ + { + "commission_amount": 0, + "commission_percent": 0, + "payout": 0, + "product_id": 140048123, + "old_price": 1888, + "price": 1259, + "total_discount_value": 629, + "total_discount_percent": 33.32, + "actions": [ + "Системная виртуальная скидка селлера" + ], + "quantity": 1 + } + ] + }, + "is_express": false, + "legal_info": { + "company_name": "string", + "inn": "string", + "kpp": "string" + }, + "requirements": { + "products_requiring_change_country": [], + "products_requiring_gtd": [], + "products_requiring_country": [], + "products_requiring_jwn": [] + }, + "tariffication": [ + { + "current_tariff_rate": 0, + "current_tariff_type": "", + "current_tariff_charge": "", + "current_tariff_charge_currency_code": "", + "next_tariff_rate": 0, + "next_tariff_type": "", + "next_tariff_charge": "", + "next_tariff_starts_at": "2023-11-13T08:05:57.657Z", + "next_tariff_charge_currency_code": "" + } + ] + } + ], + "count": 55 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v3/posting/fbs/list": { + "post": { + "summary": "Список отправлений (версия 3)", + "description": "Возвращает список отправлений за указанный период времени — он должен быть не больше одного года.\n\nДополнительно можно отфильтровать отправления по их статусу — список доступных для выдачи статусов указан в описании параметра `filter.status`.\n\n`has_next = true` в ответе может значить, что вернули не весь массив отправлений. Чтобы получить информацию об остальных отправлениях, сделайте новый запрос с другим значением `offset`.\n\n Чтобы получать актуальную дату отгрузки, регулярно обновляйте информацию об отправлениях или подключите [пуш-уведомления](#tag/push_start).\n", + "operationId": "PostingAPI_GetFbsPostingListV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv3GetFbsPostingListRequest" + }, + "example": { + "dir": "ASC", + "filter": { + "delivery_method_id": [ + "21321684811000" + ], + "is_quantum": false, + "last_changed_status_date": { + "from": "2023-11-03T11:47:39.878Z", + "to": "2023-11-03T11:47:39.878Z" + }, + "order_id": 0, + "provider_id": [ + "24" + ], + "since": "2023-11-03T11:47:39.878Z", + "status": "awaiting_packaging", + "to": "2023-11-03T11:47:39.878Z", + "warehouse_id": [ + "21321684811000" + ] + }, + "limit": 100, + "offset": 0, + "with": { + "analytics_data": true, + "barcodes": true, + "financial_data": true, + "translit": true + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3GetFbsPostingListResponseV3" + }, + "example": { + "result": { + "postings": [ + { + "posting_number": "05708065-0029-1", + "order_id": 680420041, + "order_number": "05708065-0029", + "pickup_code_verified_at": "2025-01-17T10:59:26.614Z", + "status": "awaiting_deliver", + "substatus": "posting_awaiting_passport_data", + "delivery_method": { + "id": 21321684811000, + "name": "Ozon Логистика самостоятельно, Красногорск", + "warehouse_id": 21321684811000, + "warehouse": "Стим Тойс Нахабино", + "tpl_provider_id": 24, + "tpl_provider": "Ozon Логистика" + }, + "tracking_number": "", + "tpl_integration_type": "ozon", + "in_process_at": "2022-05-13T07:07:32Z", + "shipment_date": "2022-05-13T10:00:00Z", + "delivering_date": null, + "optional": { + "products_with_possible_mandatory_mark": [ + 0 + ] + }, + "cancellation": { + "cancel_reason_id": 0, + "cancel_reason": "", + "cancellation_type": "", + "cancelled_after_ship": false, + "affect_cancellation_rating": false, + "cancellation_initiator": "" + }, + "customer": null, + "products": [ + { + "price": "1390.000000", + "currency_code": "RUB", + "is_blr_traceable": true, + "is_marketplace_buyout": true, + "offer_id": "205953", + "name": " Электронный конструктор PinLab Позитроник", + "sku": 358924380, + "quantity": 1 + } + ], + "addressee": null, + "barcodes": null, + "analytics_data": null, + "financial_data": null, + "is_express": false, + "legal_info": { + "company_name": "string", + "inn": "string", + "kpp": "string" + }, + "quantum_id": 0, + "requirements": { + "products_requiring_change_country": [], + "products_requiring_gtd": [], + "products_requiring_country": [], + "products_requiring_mandatory_mark": [], + "products_requiring_jwn": [] + }, + "tariffication": [ + { + "current_tariff_rate": 0, + "current_tariff_type": "", + "current_tariff_charge": "", + "current_tariff_charge_currency_code": "", + "next_tariff_rate": 0, + "next_tariff_type": "", + "next_tariff_charge": "", + "next_tariff_starts_at": "2023-11-13T08:05:57.657Z", + "next_tariff_charge_currency_code": "" + } + ] + } + ], + "has_next": true + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v3/posting/fbs/get": { + "post": { + "summary": "Получить информацию об отправлении по идентификатору", + "description": "Чтобы получать актуальную дату отгрузки, регулярно обновляйте информацию об отправлениях или подключите [пуш-уведомления](#tag/push_start).", + "operationId": "PostingAPI_GetFbsPostingV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv3GetFbsPostingRequest" + }, + "example": { + "posting_number": "57195475-0050-3", + "with": { + "analytics_data": false, + "barcodes": false, + "financial_data": false, + "legal_info": false, + "product_exemplars": false, + "related_postings": true, + "translit": false + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отправлении", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3GetFbsPostingResponseV3" + }, + "example": { + "result": { + "posting_number": "57195475-0050-3", + "order_id": 438764970, + "order_number": "57195475-0050", + "pickup_code_verified_at": "2025-01-17T11:04:59.958Z", + "status": "awaiting_packaging", + "substatus": "posting_awaiting_passport_data", + "previous_substatus": "posting_transferring_to_delivery", + "delivery_method": { + "id": 18114520187000, + "name": "Ozon Логистика самостоятельно, Москва", + "warehouse_id": 18114520187000, + "warehouse": "Москва основной", + "tpl_provider_id": 24, + "tpl_provider": "Ozon Логистика" + }, + "tracking_number": "", + "tpl_integration_type": "ozon", + "in_process_at": "2021-11-20T09:14:16Z", + "shipment_date": "2021-11-23T10:00:00Z", + "delivering_date": null, + "provider_status": "", + "delivery_price": "", + "optional": { + "products_with_possible_mandatory_mark": [ + 0 + ] + }, + "cancellation": { + "cancel_reason_id": 0, + "cancel_reason": "", + "cancellation_type": "", + "cancelled_after_ship": false, + "affect_cancellation_rating": false, + "cancellation_initiator": "" + }, + "customer": null, + "addressee": null, + "products": [ + { + "currency_code": "RUB", + "is_blr_traceable": true, + "is_marketplace_buyout": true, + "price": "279.0000", + "offer_id": "250-7898-1", + "name": "Кофе ароматизированный \"Шоколадный апельсин\" 250 гр", + "sku": 180550365, + "quantity": 1, + "jw_uin": [], + "dimensions": { + "height": "40.00", + "length": "240.00", + "weight": "260", + "width": "140.00" + } + } + ], + "barcodes": null, + "analytics_data": null, + "financial_data": null, + "additional_data": [], + "is_express": false, + "legal_info": { + "company_name": "string", + "inn": "string", + "kpp": "string" + }, + "related_postings": { + "related_posting_numbers": [ + "string" + ] + }, + "requirements": { + "products_requiring_change_country": [], + "products_requiring_gtd": [], + "products_requiring_country": [], + "products_requiring_jwn": [] + }, + "product_exemplars": null, + "tariffication": [ + { + "current_tariff_rate": 0, + "current_tariff_type": "", + "current_tariff_charge": "", + "current_tariff_charge_currency_code": "", + "next_tariff_rate": 0, + "next_tariff_type": "", + "next_tariff_charge": "", + "next_tariff_starts_at": "2023-11-13T08:05:57.657Z", + "next_tariff_charge_currency_code": "" + } + ] + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/get-by-barcode": { + "post": { + "summary": "Получить информацию об отправлении по штрихкоду", + "operationId": "PostingAPI_GetFbsPostingByBarcode", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingGetFbsPostingByBarcodeRequest" + }, + "example": { + "barcode": "20325804886000" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отправлении", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FbsPostingResponse" + }, + "example": { + "result": { + "posting_number": "57195475-0050-3", + "order_id": 438764970, + "order_number": "57195475-0050", + "status": "awaiting_packaging", + "delivery_method": { + "id": 18114520187000, + "name": "Ozon Логистика самостоятельно, Москва", + "warehouse_id": 18114520187000, + "warehouse": "Москва основной", + "tpl_provider_id": 24, + "tpl_provider": "Ozon Логистика" + }, + "tracking_number": "", + "tpl_integration_type": "ozon", + "in_process_at": "2021-11-20T09:14:16Z", + "shipment_date": "2021-11-23T10:00:00Z", + "delivering_date": null, + "provider_status": "", + "delivery_price": "", + "cancellation": { + "cancel_reason_id": 0, + "cancel_reason": "", + "cancellation_type": "", + "cancelled_after_ship": false, + "affect_cancellation_rating": false, + "cancellation_initiator": "" + }, + "customer": null, + "addressee": null, + "products": [ + { + "price": "279.0000", + "offer_id": "250-7898-1", + "name": "Кофе ароматизированный \"Шоколадный апельсин\" 250 гр", + "sku": 180550365, + "quantity": 1, + "dimensions": { + "height": "40.00", + "length": "240.00", + "weight": "260", + "width": "140.00" + } + } + ], + "barcodes": null, + "analytics_data": null, + "financial_data": null, + "additional_data": [], + "is_express": false, + "requirements": { + "products_requiring_gtd": [], + "products_requiring_country": [] + }, + "product_exemplars": null + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v3/posting/multiboxqty/set": { + "post": { + "summary": "Указать количество коробок для многокоробочных отправлений", + "description": "Метод для передачи количества коробок для отправлений, в которых есть многокоробочные товары.\n\nИспользуйте метод при работе по схеме rFBS Агрегатор — c доставкой партнёрами Ozon.\n", + "operationId": "PostingAPI_PostingMultiBoxQtySetV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv3PostingMultiBoxQtySetV3Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Количество коробок указано", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingv3PostingMultiBoxQtySetV3Response" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/product/change": { + "post": { + "summary": "Добавить вес для весовых товаров в отправлении", + "operationId": "PostingAPI_ChangeFbsPostingProduct", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingProductChangeRequest" + }, + "example": { + "items": [ + { + "sku": 1231428352, + "weightReal": [ + 0.3 + ] + } + ], + "posting_number": "33920158-0006-1" + } + } + } + }, + "responses": { + "200": { + "description": "Данные добавлены", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingProductChangeResponse" + }, + "example": { + "result": "33920158-0006-1" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/product/country/list": { + "post": { + "tags": [ + "FBS" + ], + "summary": "Список доступных стран-изготовителей", + "description": "Метод для получения списка доступных стран-изготовителей и их ISO кодов.", + "operationId": "PostingAPI_ListCountryProductFbsPostingV2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FbsPostingProductCountryListRequest" + }, + "example": { + "name_search": "" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список доступных стран-изготовителей", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FbsPostingProductCountryListResponse" + }, + "example": { + "result": [ + { + "name": "Алжир", + "country_iso_code": "DZ" + }, + { + "name": "Ангилья", + "country_iso_code": "AI" + }, + { + "name": "Виргинские Острова (Великобритания)", + "country_iso_code": "VG" + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/product/country/set": { + "post": { + "tags": [ + "FBS" + ], + "summary": "Добавить информацию о стране-изготовителе товара", + "description": "Метод для добавления на продукт атрибута «Страна-изготовитель», если он не был указан.", + "operationId": "PostingAPI_SetCountryProductFbsPostingV2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FbsPostingProductCountrySetRequest" + }, + "example": { + "country_iso_code": "NO", + "posting_number": "57195475-0050-3", + "product_id": 180550365 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Страна-изготовитель добавлена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2FbsPostingProductCountrySetResponse" + }, + "example": { + "product_id": 180550365, + "is_gtd_needed": true + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/fbs/restrictions": { + "post": { + "tags": [ + "FBS" + ], + "summary": "Получить ограничения пункта приёма", + "description": "Метод для получения габаритных, весовых и прочих ограничений пункта приёма по номеру отправления. Метод применим только для работы по схеме FBS.", + "operationId": "PostingAPI_GetRestrictions", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetRestrictionsRequest" + }, + "example": { + "posting_number": "76673629-0020-1" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Ограничения пункта приёма", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetRestrictionsResponse" + }, + "example": { + "result": { + "posting_number": "76673629-0020-1", + "max_posting_weight": 40000, + "min_posting_weight": 0, + "width": 500, + "height": 500, + "length": 500, + "max_posting_price": 500000, + "min_posting_price": 0 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/posting/fbs/package-label": { + "post": { + "summary": "Напечатать этикетку", + "description": "\n\nГенерирует PDF-файл с этикетками для указанных отправлений. В одном запросе можно передать не больше 20 идентификаторов. Если хотя бы для одного отправления возникнет ошибка, этикетки не будут подготовлены для всех отправлений в запросе.\n\nРекомендуем запрашивать этикетки через 45–60 секунд после сборки заказа.\n\nОшибка `The next postings aren't ready` означает, что этикетки ещё не готовы, повторите запрос позднее.\n", + "operationId": "PostingAPI_PostingFBSPackageLabel", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSPackageLabelRequest" + }, + "example": { + "posting_number": [ + "48173252-0034-4" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Маркировка напечатана", + "content": { + "application/pdf": { + "schema": { + "$ref": "#/components/schemas/postingPostingFBSPackageLabelResponse" + }, + "example": { + "content_type": "application/pdf", + "file_name": "ticket-170660-2023-07-13T13:17:06Z.pdf", + "file_content": "%PDF-1.7\n%âãÏÓ\n53 0 obj\n<>/Pages 9 0 R/StructTreeRoot 10 0 R/Type/Catalog>>\nendobj\n8 0 obj\n<>\nstream\nxœå[[ݶ\u0011~?¿BÏ\u0005Bs†\u001c^\u0000Àwí5ú\u0010 m\u0016Èsà¦)\n;hÒ\u0014èÏïG‰\u0014)‰<{äµ] ]?¬¬oIÎ}†¤F±‰óϤñï\u001bÕü×X­´OÏï?^~¹$<ø¨È9q\u0013Y\u0012åñì§_¼|ÿ‡égü\t+\u0012\u001bxžª}Æxšҿ¿¼›–‡_º¼xg¦Ÿþ5Oku˜œÌ3ýíògüûå\"Ni\u0016C\u0001°\u000fA9g‰'r¢\"\u0013YóĪ\u0018NÑ{\u001d–ÕóZ¬\\Ô\"" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v1/posting/fbs/package-label/create": { + "post": { + "summary": "Создать задание на выгрузку этикеток", + "description": "\n\nМетод для создания задания на асинхронное формирование этикеток.\n\nДля получения этикеток, созданных в результате вызова метода, используйте [/v1/posting/fbs/package-label/get](#operation/PostingAPI_GetLabelBatch).\n", + "operationId": "PostingAPI_CreateLabelBatch", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateLabelBatchRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Идентификатор задания на формирование этикеток", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateLabelBatchResponse" + }, + "example": { + "result": { + "task_id": 5819327210249 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/package-label/create": { + "post": { + "summary": "Создать задание на формирование этикеток", + "description": "Метод для создания задания на асинхронное формирование этикеток.\nМетод может вернуть несколько заданий: на формирование маленькой и большой этикетки.\n\nЧтобы получить созданные этикетки, используйте [/v1/posting/fbs/package-label/get](#operation/PostingAPI_GetLabelBatch).\n", + "operationId": "PostingAPI_CreateLabelBatchV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateLabelBatchRequest" + }, + "example": { + "posting_number": [ + "4708216109137", + "3697105098026" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Задания на формирование этикеток", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2CreateLabelBatchResponse" + }, + "example": { + "result": { + "tasks": [ + { + "task_id": 5819327210248, + "task_type": "big_label" + }, + { + "task_id": 5819327210249, + "task_type": "small_label" + } + ] + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v1/posting/fbs/package-label/get": { + "post": { + "summary": "Получить файл с этикетками", + "description": "Метод для получения этикеток после вызова [/v1/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatch).", + "operationId": "PostingAPI_GetLabelBatch", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetLabelBatchRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус формирования этикеток или файл с ними", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetLabelBatchResponse" + }, + "example": { + "result": { + "status": "completed", + "file_url": "https://cdn1.ozone.ru/s3/sc-temporary/e6/0c/e60cdfd7aed78c2b44d134504fbd591d.pdf" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v1/posting/fbs/cancel-reason": { + "post": { + "summary": "Причины отмены отправления", + "description": "Возвращает список причин отмены для конкретных отправлений.", + "operationId": "PostingAPI_GetPostingFbsCancelReasonV1", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingCancelReasonRequest" + }, + "example": { + "related_posting_numbers": [ + "73837363-0010-3" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Причины отмены отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingCancelReasonResponse" + }, + "example": { + "result": [ + { + "posting_number": "73837363-0010-3", + "reasons": [ + { + "id": 352, + "title": "Товар закончился на складе продавца", + "type_id": "seller" + }, + { + "id": 400, + "title": "Остался только бракованный товар", + "type_id": "seller" + }, + { + "id": 402, + "title": "Другое (вина продавца)", + "type_id": "seller" + } + ] + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/cancel-reason/list": { + "post": { + "summary": "Причины отмены отправлений", + "description": "Возвращает список причин отмены для всех отправлений.", + "operationId": "PostingAPI_GetPostingFbsCancelReasonList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Причины отмены отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingCancelReasonListResponse" + }, + "example": { + "result": [ + { + "id": 352, + "title": "Товар закончился на складе продавца", + "type_id": "seller", + "is_available_for_cancellation": true + }, + { + "id": 401, + "title": "Продавец отклонил арбитраж", + "type_id": "seller", + "is_available_for_cancellation": false + }, + { + "id": 402, + "title": "Другое (вина продавца)", + "type_id": "seller", + "is_available_for_cancellation": true + }, + { + "id": 666, + "title": "Возврат из службы доставки: нет доставки в указанный регион", + "type_id": "seller", + "is_available_for_cancellation": false + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/product/cancel": { + "post": { + "summary": "Отменить отправку некоторых товаров в отправлении", + "description": "Используйте метод, если вы не можете отправить часть продуктов из отправления.\n\nЧтобы получить идентификаторы причин отмены `cancel_reason_id` при работе по схемам FBS или rFBS, используйте метод [/v2/posting/fbs/cancel-reason/list](#operation/PostingAPI_GetPostingFbsCancelReasonList).\n\nУсловно-доставленные отправления отменить нельзя.\n", + "operationId": "PostingAPI_CancelFbsPostingProduct", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingProductCancelRequest" + }, + "example": { + "cancel_reason_id": 352, + "cancel_reason_message": "Product is out of stock", + "items": [ + { + "quantity": 5, + "sku": 150587396 + } + ], + "posting_number": "33920113-1231-1" + } + } + } + }, + "responses": { + "200": { + "description": "Отправка отменена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingPostingProductCancelResponse" + }, + "example": { + "result": "" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/cancel": { + "post": { + "summary": "Отменить отправление", + "description": "Меняет статус отправления на `cancelled`.\n\nПеред началом работы проверьте причины отмены для конкретного отправления методом [/v1/posting/fbs/cancel-reason](#operation/PostingAPI_GetPostingFbsCancelReasonV1).\n\nУсловно-доставленные отправления отменить нельзя.\n\nЕсли значение параметра `cancel_reason_id` — 402, заполните поле `cancel_reason_message`.\n", + "operationId": "PostingAPI_CancelFbsPosting", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingCancelFbsPostingRequest" + }, + "example": { + "cancel_reason_id": 352, + "cancel_reason_message": "Product is out of stock", + "posting_number": "33920113-1231-1" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отправление отменено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingBooleanResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/arbitration": { + "post": { + "summary": "Открыть спор по отправлению", + "description": "Если отправление передано в доставку, но не просканировано в сортировочном центре, можно открыть спор. Открытый спор переведёт отправление в статус `arbitration`.", + "operationId": "PostingAPI_MoveFbsPostingToArbitration", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingMovePostingRequest" + }, + "example": { + "posting_number": [ + "33920143-1195-1" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Открыт спор по отправлению", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingBooleanResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/posting/fbs/awaiting-delivery": { + "post": { + "summary": "Передать отправление к отгрузке", + "description": "Передает спорные заказы к отгрузке. Статус отправления изменится на `awaiting_deliver`.", + "operationId": "PostingAPI_MoveFbsPostingToAwaitingDelivery", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2MovePostingToAwaitingDeliveryRequest" + }, + "example": { + "posting_number": [ + "33920143-1195-1" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Отправление передано к отгрузке", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/postingBooleanResponse" + }, + "example": { + "result": true + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v1/posting/fbs/pick-up-code/verify": { + "post": { + "tags": [ + "FBS" + ], + "summary": "Проверить код курьера", + "description": "Метод позволяет проверить код курьера при передаче отправлений realFBS Express. Подробнее о передаче отправлений в [Базе знаний продавца](https://seller-edu.ozon.ru/contract-for-sellers/regulations-fbs-realfbs/reglament-prodaji-so-svoego-sklada-fbs-express#7-порядок-передачи-отправлении-через-партнёров-ozon-при-экспресс-доставке).", + "operationId": "PostingAPI_PostingFBSPickupCodeVerify", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFBSPickupCodeVerifyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат проверки", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFBSPickupCodeVerifyResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/global/etgb": { + "post": { + "tags": [ + "FBS" + ], + "summary": "Таможенные декларации ETGB", + "description": "Метод для получения таможенных деклараций Elektronik Ticaret Gümrük Beyannamesi (ETGB) для продавцов из Турции.\n", + "operationId": "PostingAPI_GetEtgb", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetEtgbRequest" + }, + "example": { + "date": { + "from": "2023-02-13T12:13:16.818Z", + "to": "2023-02-13T12:13:16.818Z" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о декларациях", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetEtgbResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/posting/unpaid-legal/product/list": { + "post": { + "summary": "Список неоплаченных товаров, заказанных юридическими лицами", + "operationId": "PostingAPI_UnpaidLegalProductList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingUnpaidLegalProductListRequest" + }, + "example": { + "cursor": "", + "limit": 1000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список неоплаченных товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingUnpaidLegalProductListResponse" + }, + "example": { + "products": [ + { + "product_id": 145123054, + "offer_id": "10032", + "quantity": 1, + "name": "Телевизор LG", + "image_url": "https://url" + } + ], + "cursor": "hCGiPPopcBFMgMErdzaCEpzQfinuPyEhUoSmBMADuoFAhBjXeA==" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FBS" + ] + } + }, + "/v2/returns/rfbs/list": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Список заявок на возврат", + "operationId": "RFBSReturnsAPI_ReturnsRfbsListV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsListRequest" + }, + "example": { + "filter": { + "offer_id": "string", + "posting_number": "string", + "group_state": [ + "ALL" + ], + "created_at": { + "from": "2019-08-24T14:15:22Z", + "to": "2019-08-24T14:15:22Z" + } + }, + "last_id": 0, + "limit": 1000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список заявок на возврат", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsListResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/returns/rfbs/get": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Информация о заявке на возврат", + "operationId": "RFBSReturnsAPI_ReturnsRfbsGetV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsGetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о заявке", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsGetResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/returns/rfbs/reject": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Отклонить заявку на возврат", + "description": "\n\nМетод позволяет отклонить заявку на возврат rFBS-заказа. Вы можете объяснить своё решение в параметре `comment`.\n", + "operationId": "RFBSReturnsAPI_ReturnsRfbsRejectV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsRejectRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявка отклонена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/returns/rfbs/compensate": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Вернуть часть стоимости товара", + "description": "\n\nМетод для частичной компенсации стоимости товара: вы возвращаете часть денег покупателю, товар остаётся у него.\n", + "operationId": "RFBSReturnsAPI_ReturnsRfbsCompensateV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsCompensateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Частичная компенсация подтверждена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/returns/rfbs/verify": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Одобрить заявку на возврат", + "description": "\n\nМетод позволяет одобрить заявку и согласиться на получение товара для проверки.\n\nПодтвердите получение товара с помощью метода [/v2/returns/rfbs/receive-return](#operation/RFBSReturnsAPI_ReturnsRfbsReceiveReturnV2).\n", + "operationId": "RFBSReturnsAPI_ReturnsRfbsVerifyV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsVerifyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявка одобрена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/returns/rfbs/receive-return": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Подтвердить получение товара на проверку", + "description": "\n", + "operationId": "RFBSReturnsAPI_ReturnsRfbsReceiveReturnV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsReceiveReturnRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Получение подтверждено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/returns/rfbs/return-money": { + "post": { + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Вернуть деньги покупателю", + "description": "\n\nМетод подтверждает возврат полной стоимости товара.\nИспользуйте метод, если согласны:\n- сразу вернуть стоимость товара и оставить его покупателю;\n- вернуть стоимость после получения и проверки товара.\n\nЕсли товар оказался ненадлежащего качества или с браком, вы возмещаете покупателю стоимость пересылки товара.\n", + "operationId": "RFBSReturnsAPI_ReturnsRfbsReturnMoneyV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReturnsRfbsReturnMoneyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Возврат денег подтверждён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/returns/rfbs/action/set": { + "post": { + "description": "Метод для передачи действий для возврата rFBS.", + "tags": [ + "RFBSReturnsAPI" + ], + "summary": "Передать доступные действия для rFBS возвратов", + "operationId": "ReturnsAPI_ReturnsRfbsActionSet", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReturnsRfbsActionSetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Действие передано" + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/conditional-cancellation/get": { + "post": { + "summary": "Получить информацию о заявке на отмену rFBS", + "description": "\n\nМетод для получения информации о заявке на отмену rFBS-заказа.\n", + "operationId": "CancellationAPI_GetConditionalCancellation", + "deprecated": true, + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetConditionalCancellationRequest" + }, + "example": { + "cancellation_id": 90066344 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о заявке на отмену", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetConditionalCancellationResponse" + }, + "example": { + "result": { + "cancellation_id": 90066344, + "posting_number": "47134289-0029-1", + "cancellation_reason": { + "id": 508, + "name": "Покупатель отменил заказ" + }, + "cancelled_at": "2022-04-07T06:37:26.871105Z", + "cancellation_reason_message": "Изменение пункта выдачи заказа.", + "tpl_integration_type": "ThirdPartyTracking", + "state": { + "id": 2, + "name": "Подтверждена", + "state": "APPROVED" + }, + "cancellation_initiator": "CLIENT", + "order_date": "2022-04-06T17:17:24.517Z", + "approve_comment": "", + "approve_date": "2022-04-07T07:52:45.971824Z", + "auto_approve_date": "2022-04-09T06:37:26.871105Z" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CancellationAPI" + ] + } + }, + "/v2/conditional-cancellation/list": { + "post": { + "tags": [ + "CancellationAPI" + ], + "summary": "Получить список заявок на отмену rFBS", + "description": "Метод для получения списка заявок на отмену rFBS-заказов.", + "operationId": "CancellationAPI_GetConditionalCancellationListV2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetConditionalCancellationListV2Request" + }, + "example": { + "filters": { + "cancellation_initiator": [ + "CLIENT" + ], + "posting_number": [ + "34009011-0094-1" + ], + "state": "ALL" + }, + "limit": 500, + "last_id": 0, + "with": { + "counter": true + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список заявок на отмену", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetConditionalCancellationListV2Response" + }, + "example": { + "result": [ + { + "approve_comment": "string", + "approve_date": "2024-11-27T12:31:43.621Z", + "auto_approve_date": "2024-11-27T12:31:43.621Z", + "cancellation_id": 0, + "cancellation_initiator": "OZON", + "cancellation_reason": { + "id": 0, + "name": "string" + }, + "cancellation_reason_message": "string", + "cancelled_at": "2024-11-27T12:31:43.621Z", + "order_date": "2024-11-27T12:31:43.621Z", + "posting_number": "string", + "state": { + "id": 0, + "name": "string", + "state": "ALL" + }, + "tpl_integration_type": "string" + } + ], + "counter": "1", + "last_id": 283784254 + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/conditional-cancellation/list": { + "post": { + "summary": "Получить список заявок на отмену rFBS", + "description": "\n\nМетод для получения списка заявок на отмену rFBS-заказов.\n", + "operationId": "CancellationAPI_GetConditionalCancellationList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetConditionalCancellationListRequest" + }, + "example": { + "filters": { + "cancellation_initiator": [ + "CLIENT" + ], + "posting_number": [], + "state": "ALL" + }, + "limit": 2, + "offset": 0, + "with": { + "counters": true + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список заявок на отмену", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetConditionalCancellationListResponse" + }, + "example": { + "result": [ + { + "cancellation_id": 50186754, + "posting_number": "41267064-0032-1", + "cancellation_reason": { + "id": 508, + "name": "Покупатель отменил заказ" + }, + "cancelled_at": "2021-09-03T07:17:12.116114Z", + "cancellation_reason_message": "", + "tpl_integration_type": "ThirdPartyTracking", + "state": { + "id": 2, + "name": "Подтверждена", + "state": "APPROVED" + }, + "cancellation_initiator": "CLIENT", + "order_date": "2021-09-03T07:04:53.220Z", + "approve_comment": "", + "approve_date": "2021-09-03T09:13:12.614200Z", + "auto_approve_date": "2021-09-06T07:17:12.116114Z" + }, + { + "cancellation_id": 51956491, + "posting_number": "14094410-0018-1", + "cancellation_reason": { + "id": 507, + "name": "Покупатель передумал" + }, + "cancelled_at": "2021-09-13T15:03:25.155827Z", + "cancellation_reason_message": "", + "tpl_integration_type": "ThirdPartyTracking", + "state": { + "id": 5, + "name": "Автоматически отменена", + "state": "REJECTED" + }, + "cancellation_initiator": "CLIENT", + "order_date": "2021-09-13T07:48:50.143Z", + "approve_comment": "", + "approve_date": null, + "auto_approve_date": "2021-09-16T15:03:25.155827Z" + } + ], + "total": 19, + "counters": { + "on_approval": 0, + "approved": 14, + "rejected": 5 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CancellationAPI" + ] + } + }, + "/v2/conditional-cancellation/approve": { + "post": { + "tags": [ + "CancellationAPI" + ], + "summary": "Подтвердить заявку на отмену rFBS", + "description": "Метод позволяет согласовать заявку на отмену в статусе `ON_APPROVAL`. Заказ будет отменён, а деньги вернутся покупателю.", + "operationId": "CancellationAPI_ConditionalCancellationApproveV2", + "requestBody": { + "$ref": "#/components/requestBodies/v2ConditionalCancellationMoveV2Request" + }, + "responses": { + "200": { + "description": "Заявка подтверждена" + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/conditional-cancellation/approve": { + "post": { + "summary": "Подтвердить заявку на отмену rFBS", + "description": "\n\nМетод позволяет согласовать заявку на отмену в статусе `ON_APPROVAL`. Метод применим для rFBS-заказов. Заказ будет отменён, а деньги вернутся покупателю.\n", + "operationId": "CancellationAPI_ConditionalCancellationApprove", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ConditionalCancellationMoveRequest" + }, + "example": { + "cancellation_id": 74393917 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявка подтверждена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + }, + "example": {} + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CancellationAPI" + ] + } + }, + "/v2/conditional-cancellation/reject": { + "post": { + "tags": [ + "CancellationAPI" + ], + "summary": "Отклонить заявку на отмену rFBS", + "description": "Метод позволяет отклонить заявку на отмену в статусе `ON_APPROVAL`. В параметре `comment` опишите причину. Заказ останется в том же статусе, и его нужно будет доставить покупателю.", + "operationId": "CancellationAPI_ConditionalCancellationRejectV2", + "requestBody": { + "$ref": "#/components/requestBodies/v2ConditionalCancellationMoveV2Request" + }, + "responses": { + "200": { + "description": "Заявка отклонена" + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/conditional-cancellation/reject": { + "post": { + "summary": "Отклонить заявку на отмену rFBS", + "description": "\n\nМетод позволяет отклонить заявку на отмену в статусе `ON_APPROVAL`. Метод применим для rFBS-заказов. Объясните своё решение в параметре `comment`. \n\nЗаказ останется в том же статусе, и его нужно будет доставить покупателю.\n", + "operationId": "CancellationAPI_ConditionalCancellationReject", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ConditionalCancellationMoveRequest" + }, + "example": { + "cancellation_id": 52394916, + "comment": "Заявка на отмену отклоняется. Заказ будет доставлен в указанные сроки. При необходимости вы можете оформить возврат." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Заявка отклонена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + }, + "example": {} + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "CancellationAPI" + ] + } + }, + "/v1/returns/list": { + "post": { + "tags": [ + "ReturnsAPI" + ], + "summary": "Информация о возвратах FBO и FBS", + "description": "Метод для получения информации о возвратах FBO и FBS.", + "operationId": "returnsList", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetReturnsListRequest" + }, + "example": { + "filter": { + "logistic_return_date": { + "time_from": "2019-08-24T14:15:22Z", + "time_to": "2019-08-24T14:15:22Z" + }, + "storage_tariffication_start_date": { + "time_from": "2019-08-24T14:15:22Z", + "time_to": "2019-08-24T14:15:22Z" + }, + "visual_status_change_moment": { + "time_from": "2019-08-24T14:15:22Z", + "time_to": "2019-08-24T14:15:22Z" + }, + "order_id": "0", + "posting_numbers": [ + "string" + ], + "product_name": "string", + "offer_id": "string", + "visual_status_name": "string", + "warehouse_id": "911", + "barcode": "string", + "return_schema": "FBO" + }, + "limit": 500, + "last_id": 0 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация по возвратам", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetReturnsListResponse" + }, + "example": { + "returns": [ + { + "exemplars": [ + { + "id": "1019562967545956" + } + ], + "id": "1000015552", + "company_id": "3058", + "return_reason_name": "Покупатель отказался при вручении: недоволен качеством товара", + "type": "FullReturn", + "schema": "Fbs", + "order_id": "24540784250", + "order_number": "58544282-0057", + "place": { + "id": "23869688194000", + "name": "СЦ_Львовский_Возвраты", + "address": "Россия, обл. Московская, г. Подольск, промышленная зона Львовский, ул. Московская, д. 69, стр. 5" + }, + "target_place": { + "id": "23869688194000", + "name": "СЦ_Львовский_Возвраты", + "address": "Россия, обл. Московская, г. Подольск, промышленная зона Львовский, ул. Московская, д. 69, стр. 5" + }, + "storage": { + "sum": { + "currency_code": "RUB", + "price": "1231" + }, + "tariffication_first_date": "2024-07-30T06:15:48.998146Z", + "tariffication_start_date": "2024-07-29T06:15:48.998146Z", + "arrived_moment": "2024-07-29T06:15:48.998146Z", + "days": "0", + "utilization_sum": { + "currency_code": "RUB", + "price": "1231" + }, + "utilization_forecast_date": "2024-07-29T06:15:48.998146Z" + }, + "product": { + "sku": "1100526203", + "offer_id": "81451", + "name": "Кукла Дотти Плачущий младенец Cry Babies Dressy Dotty", + "price": { + "currency_code": "RUB", + "price": "3318" + }, + "price_without_commission": { + "currency_code": "RUB", + "price": "3318" + }, + "commission_percent": "1.2", + "commission": { + "currency_code": "RUB", + "price": "2312" + }, + "quantity": 1 + }, + "logistic": { + "technical_return_moment": "2024-07-29T06:15:48.998146Z", + "final_moment": "2024-07-29T06:15:48.998146Z", + "cancelled_with_compensation_moment": "2024-07-29T06:15:48.998146Z", + "return_date": "2024-07-29T06:15:48.998146Z", + "barcode": "ii5275210303" + }, + "visual": { + "status": { + "id": 3, + "display_name": "В пункте выдачи", + "sys_name": "ArrivedAtReturnPlace" + }, + "change_moment": "2024-07-29T06:15:48.998146Z" + }, + "additional_info": { + "is_opened": true, + "is_super_econom": false + }, + "source_id": "90426223", + "posting_number": "58544282-0057-1", + "clearing_id": "21190893156000", + "return_clearing_id": null + } + ], + "has_next": false + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/returns/company/fbs/info": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Количество возвратов FBS", + "description": "Метод для получения информации о возвратах FBS и их количестве.", + "operationId": "returnsCompanyFBSInfo", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReturnsCompanyFbsInfoRequest" + }, + "example": { + "filter": { + "place_id": 0 + }, + "pagination": { + "last_id": 0, + "limit": 500 + } + } + } + } + }, + "responses": { + "200": { + "description": "Количество возвратов FBS", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReturnsCompanyFbsInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/is-enabled": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Проверить возможность получения возвратных отгрузок по штрихкоду", + "description": "Если у вас есть доступ, в параметре `enabled` будет указано значение `true`.", + "operationId": "ReturnAPI_GiveoutIsEnabled", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "responses": { + "200": { + "description": "Результат проверки", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutIsEnabledResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/list": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Список возвратных отгрузок", + "description": "Метод для получения списка активных возвратов.\nВозвратная отгрузка становится активной после сканирования штрихкода. \nПосле сканирования штрихкода второй раз активная выдача переходит в статус неактивной.\n", + "operationId": "ReturnAPI_GiveoutList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutListRequest" + }, + "example": { + "last_id": 0, + "limit": 500 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список возвратных отгрузок", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/info": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Информация о возвратной отгрузке", + "description": "Метод для получения информации о возвратной отгрузке. \nВ параметр `giveout_id` передаётся значение, полученное в методе [/v1/return/giveout/list](#operation/ReturnAPI_GiveoutList).\n", + "operationId": "ReturnAPI_GiveoutInfo", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о возвратной отгрузке", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/barcode": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Значение штрихкода для возвратных отгрузок", + "description": "Используйте этот метод, чтобы получить штрихкод из ответа методов [/v1/return/giveout/get-png](#operation/ReturnAPI_GiveoutGetPNG) и [/v1/return/giveout/get-pdf](#operation/ReturnAPI_GiveoutGetPDF) в текстовом виде.", + "operationId": "ReturnAPI_GiveoutGetBarcode", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "responses": { + "200": { + "description": "Значение штрихкода", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutGetBarcodeResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/get-pdf": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Штрихкод для получения возвратной отгрузки в формате PDF", + "description": "Возвращает PDF-файл со штрихкодом. Метод работает только для схемы FBS.", + "operationId": "ReturnAPI_GiveoutGetPDF", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "responses": { + "200": { + "description": "Штрихкод для возвратной отгрузки", + "content": { + "application/pdf": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutGetPDFResponse" + }, + "example": { + "content_type": "application/pdf", + "file_name": "string", + "file_content": "string" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/get-png": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Штрихкод для получения возвратной отгрузки в формате PNG", + "description": "Возвращает PNG-файл со штрихкодом.", + "operationId": "ReturnAPI_GiveoutGetPNG", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "responses": { + "200": { + "description": "Штрихкод для возвратной отгрузки", + "content": { + "image/png": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutGetPNGResponse" + }, + "example": { + "content_type": "image/png", + "file_name": "string", + "file_content": "string" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/return/giveout/barcode-reset": { + "post": { + "tags": [ + "ReturnAPI" + ], + "summary": "Сгенерировать новый штрихкод", + "description": "Используйте метод, если ваш штрихкод попал в посторонние руки.\n\nМетод возвращает PNG-файл с новым штрихкодом. После использования метода вы не сможете получить возвратную отгрузку по старым штрихкодам.\nЧтобы получить новый штрихкод в PDF-формате, запросите его методом [/v1/return/giveout/get-pdf](#operation/ReturnAPI_GiveoutGetPDF).\n", + "operationId": "ReturnAPI_GiveoutBarcodeReset", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + } + }, + "responses": { + "200": { + "description": "Новый штрихкод", + "content": { + "image/png": { + "schema": { + "$ref": "#/components/schemas/v1GiveoutBarcodeResetResponse" + }, + "example": { + "content_type": "image/png", + "file_name": "string", + "file_content": "string" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/chat/send/message": { + "post": { + "summary": "Отправить сообщение", + "description": "\nОтправляет сообщение в существующий чат по его идентификатору.

Отправить сообщение в чат с покупателем могут только продавцы с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\nПолучите список чатов с покупателем `chats.chat.chat_type=\"Buyer_Seller\"` в ответе метода [/v3/chat/list](#operation/ChatAPI_ChatListV3).\n\nДля отправлений:\n- FBO — вы можете отправить сообщение только в ответ на последнее сообщение покупателя.\n- FBS или rFBS — вы можете отправить сообщение покупателю первым в течение 72 часов после оплаты или доставки отправления. После этого вы можете только отвечать на сообщения покупателя. \n\nВы можете отвечать в течение 48 часов с момента отправки покупателем последнего сообщения.\n", + "operationId": "ChatAPI_ChatSendMessage", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/chatChatSendMessageRequest" + }, + "example": { + "chat_id": "99feb3fc-a474-469f-95d5-268b470cc607", + "text": "test" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Сообщение отправлено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/chatChatSendMessageResponse" + }, + "example": { + "result": "success" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v1/chat/send/file": { + "post": { + "summary": "Отправить файл", + "description": "Отправляет файл в существующий чат по его идентификатору.

Отправить файл в чат с покупателем могут только продавцы с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\nПолучите список чатов с покупателем `chats.chat.chat_type=\"Buyer_Seller\"` в ответе метода [/v3/chat/list](#operation/ChatAPI_ChatListV3). \n\nДля отправлений:\n- FBO — отправить файл можно только, если вы отвечаете на последнее сообщение покупателя. \n- FBS или rFBS — вы можете отправить файл покупателю первым. После отправки вы можете только отвечать на сообщения покупателя. \n\nВы можете отвечать в течение 48 часов с момента отправки покупателем последнего сообщения.\n", + "operationId": "ChatAPI_ChatSendFile", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/chatChatSendFileRequest" + }, + "example": { + "base64_content": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=", + "chat_id": "99feb3fc-a474-469f-95d5-268b470cc607", + "name": "tempor" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Файл отправлен", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/chatChatSendFileResponse" + }, + "example": { + "result": "success" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v1/chat/start": { + "post": { + "summary": "Создать новый чат", + "description": "Метод доступен только для продавцов с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus). \n\nСоздает новый чат с покупателем по отправлению. Например, чтобы уточнить адрес или модель товара. \n\nДля отправлений:\n- FBO — начать чат может только покупатель.\n- FBS и rFBS — вы можете открыть чат в течение 72 часов после оплаты или доставки отправления.\n", + "operationId": "ChatAPI_ChatStart", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/chatChatStartRequest" + }, + "example": { + "posting_number": "47873153-0052-1" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Создан новый чат", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/chatChatStartResponse" + }, + "example": { + "result": { + "chat_id": "5969c331-2e64-44b7-8a0e-ff9526762c62" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v2/chat/list": { + "post": { + "summary": "Список чатов", + "description": " \n\nВозвращает информацию о чатах по указанным фильтрам.\n", + "operationId": "ChatAPI_ChatListV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatList" + }, + "example": { + "filter": { + "chat_status": "Opened", + "unread_only": true + }, + "limit": 1, + "offset": 0 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список чатов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ChatListResponse" + }, + "example": { + "chats": [ + { + "chat": { + "created_at": "2022-07-22T08:07:19.581Z", + "chat_id": "5e767w03-b400-4y1b-a841-75319ca8a5c8", + "chat_status": "Opened", + "chat_type": "Seller_Support" + }, + "first_unread_message_id": "3000000000118021931", + "last_message_id": "30000000001280042740", + "unread_count": 1 + } + ], + "total_chats_count": 25, + "total_unread_count": 5 + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v3/chat/list": { + "post": { + "summary": "Список чатов", + "description": "Возвращает информацию о чатах по указанным фильтрам.", + "operationId": "ChatAPI_ChatListV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3ChatList" + }, + "example": { + "filter": { + "chat_status": "Opened", + "unread_only": true + }, + "limit": 1, + "cursor": "304000402034" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список чатов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3ChatListResponse" + }, + "example": { + "chats": [ + { + "chat": { + "created_at": "2022-07-22T08:07:19.581Z", + "chat_id": "5e767w03-b400-4y1b-a841-75319ca8a5c8", + "chat_status": "Opened", + "chat_type": "Seller_Support" + }, + "first_unread_message_id": "3000000000118021931", + "last_message_id": "30000000001280042740", + "unread_count": 1 + } + ], + "total_unread_count": 5, + "cursor": "30000002342123123", + "has_next": "true" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v2/chat/history": { + "post": { + "summary": "История чата", + "operationId": "ChatAPI_ChatHistoryV2", + "description": "\n\nВозвращает историю сообщений чата. По умолчанию от самого нового сообщения к старым.

История чата с покупателем доступна только для продавцов с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\nПолучите список чатов с покупателем `chats.chat.chat_type=\"Buyer_Seller\"` в ответе метода [/v3/chat/list](#operation/ChatAPI_ChatListV3).\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatHistory" + }, + "example": { + "chat_id": "18b8e1f9-4ae7-461c-84ea-8e1f54d1a45e", + "direction": "Forward", + "from_message_id": 3000000000118032000, + "limit": 1 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "История чата", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ChatHistoryResponse" + }, + "example": { + "has_next": true, + "messages": [ + { + "message_id": "3000000000817031942", + "user": { + "id": "115568", + "type": "Сustomer" + }, + "created_at": "2022-07-18T20:58:04.528Z", + "is_read": true, + "data": [ + "Здравствуйте, у меня вопрос по вашему товару \"Стекло защитное для смартфонов\", артикул 11223. Подойдет ли он на данную [ модель ](https://www.ozon.ru/product/smartfon-samsung-galaxy-a03s-4-64-gb-chernyy) телефона?" + ] + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v3/chat/history": { + "post": { + "summary": "История чата", + "tags": [ + "ChatAPI" + ], + "operationId": "ChatAPI_ChatHistoryV3", + "description": "Возвращает историю сообщений чата. По умолчанию от самого нового сообщения к старым.

История чата с покупателем доступна только для продавцов с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\nПолучите список чатов с покупателем `chats.chat.chat_type=\"Buyer_Seller\"` в ответе метода [/v3/chat/list](#operation/ChatAPI_ChatListV3).\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3ChatHistoryRequest" + }, + "example": { + "chat_id": "18b8e1f9-4ae7-461c-84ea-8e1f54d1a45e", + "direction": "Forward", + "filter": { + "message_ids": [ + "3000000300211559667" + ] + }, + "from_message_id": 3000000000118032000, + "limit": 1 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "История чата", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3ChatHistoryResponse" + }, + "example": { + "has_next": true, + "messages": [ + { + "context": { + "order_number": "123456789", + "sku": "987654321" + }, + "created_at": "2019-08-24T14:15:22Z", + "data": [ + "Здравствуйте, у меня вопрос по вашему товару \"Стекло защитное для смартфонов\", артикул 11223. Подойдет ли он на данную [ модель ](https://www.ozon.ru/product/smartfon-samsung-galaxy-a03s-4-64-gb-chernyy) телефона?" + ], + "is_image": true, + "is_read": true, + "message_id": "3000000000817031942", + "moderate_image_status": "SUCCESS", + "user": { + "id": "115568", + "type": "Сustomer" + } + } + ] + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v2/chat/read": { + "post": { + "summary": "Отметить сообщения как прочитанные", + "description": "Метод для отметки выбранного сообщения и сообщений до него прочитанными.

Отметить сообщения с покупателем как прочитанные могут только продавцы с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus). Получите список чатов с покупателем `chats.chat.chat_type=\"Buyer_Seller\"` в ответе метода [/v3/chat/list](#operation/ChatAPI_ChatListV3).", + "operationId": "ChatAPI_ChatReadV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatRead" + }, + "example": { + "chat_id": "99feb3fc-a474-469f-95d5-268b470cc607", + "from_message_id": 3000000000118032000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Успешно", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ChatReadResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ChatAPI" + ] + } + }, + "/v2/invoice/create-or-update": { + "post": { + "summary": "Создать или изменить счёт-фактуру", + "description": "Создание или изменение таможенного счёта-фактуры для возврата НДС продавцам из Турции.", + "operationId": "InvoiceAPI_InvoiceCreateOrUpdateV2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2InvoiceCreateOrUpdateV2Request" + }, + "example": { + "HS_code": [ + { + "sku": "SKU123", + "code": "534758761999" + }, + { + "sku": "SKU456", + "code": "534758761000" + }, + { + "sku": "SKU789", + "code": "534758761777" + } + ], + "date": "2023-08-01T12:08:44.342Z", + "number": "424fdsf234", + "posting_number": "33920146-0252-1", + "price": 234.34, + "price_currency": "RUB", + "url": "https://cdn.ozone.ru/s3/ozon-disk-api/techdoc/seller-api/earsivfatura_1690960445.pdf" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Счёт-фактура создана или изменена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2InvoiceCreateOrUpdateV2Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "SupplierAPI" + ] + } + }, + "/v1/invoice/file/upload": { + "post": { + "summary": "Загрузка счёта-фактуры", + "description": "Доступные форматы: JPEG и PDF. Максимальный размер файла: 10 МБ.\n", + "operationId": "invoice_upload", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1InvoiceFileUploadRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Ссылка на счёт-фактуру", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1InvoiceFileUploadResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "SupplierAPI" + ] + } + }, + "/v2/invoice/get": { + "post": { + "summary": "Получить информацию о счёте-фактуре", + "description": null, + "operationId": "invoice_getV2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1InvoiceGetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о счёте-фактуре", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2InvoiceGetV2Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "SupplierAPI" + ] + } + }, + "/v1/invoice/delete": { + "post": { + "summary": "Удалить ссылку на счёт-фактуру", + "description": null, + "operationId": "invoice_delete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1InvoiceDeleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Ссылка удалена", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1InvoiceDeleteResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "SupplierAPI" + ] + } + }, + "/v1/report/info": { + "post": { + "summary": "Информация об отчёте", + "description": "Возвращает информацию о созданном ранее отчёте по его идентификатору.", + "operationId": "ReportAPI_ReportInfo", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportReportInfoRequest" + }, + "example": { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отчёте", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportReportInfoResponse" + }, + "example": { + "result": { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27", + "status": "success", + "error": "", + "file": "https://cdn1.ozone.ru/s3/item-picture-6/f3/ce/f4ceae54b323213d3e61e59c323bd8e5.csv", + "report_type": "seller_products", + "params": {}, + "created_at": "2021-11-25T14:54:55.688260Z" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/report/list": { + "post": { + "summary": "Список отчётов", + "description": "Возвращает список отчётов, которые были сформированы раньше.", + "operationId": "ReportAPI_ReportList", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportReportListRequest" + }, + "example": { + "page": 1, + "page_size": 1000, + "report_type": "ALL" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список отчётов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportReportListResponse" + }, + "example": { + "result": { + "reports": [ + { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69", + "status": "success", + "error": "", + "file": "https://cdn1.ozone.ru/s3/item-picture-6/f3/ce/f4ceae54b323213d3e61e59c323bd8e5.csvv", + "report_type": "seller_products", + "params": { + "visibility": "3" + }, + "created_at": "2019-02-06T12:09:47.258062Z" + }, + { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69", + "status": "success", + "error": "", + "file": "https://cdn1.ozone.ru/s3/item-picture-6/f3/ce/f4ceae54b323213d3e61e59c323bd8e5.csv", + "report_type": "seller_products", + "params": { + "visibility": "3" + }, + "created_at": "2019-02-15T08:34:32.267178Z" + } + ], + "total": 2 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/report/products/create": { + "post": { + "summary": "Отчёт по товарам", + "description": "Метод для получения отчёта с данными о товарах. Например, Ozon ID, количества товаров, цен, статуса.\nСоответствует разделу/действию **Товары и цены → Список товаров → Скачать → Товары CSV** в личном кабинете.\n\nПояснения к некоторым полям:\n - __Ozon Product ID__ — идентификатор товара в нашей системе. Например, если вы продаёте товар со склада Ozon и со своего склада, Ozon Product ID будет для них одинаковым.\n - __FBO Ozon SKU ID__ — идентификатор товара, который продаётся со склада Ozon.\n - __FBS Ozon SKU ID__ — идентификатор товара, который продаётся с вашего склада.\n - __CrossBorder Ozon SKU__ — идентификатор товара, который продаётся из-за границы.\n - __Barcode__ — штрихкод товара, который печатается на маркировке.\n - __Статус товара__ — можно ли купить товар на Ozon. Если статус «Готов к продаже», товар купить нельзя.\n - __Доступно на складе Ozon, шт__ — сколько штук товара на складе доступно для продажи. Это количество не включает зарезервированные товары.\n - __Зарезервировано, шт__ — сколько штук товара со статусом «Зарезервировано». Товар зарезервирован с момента получения заказа на Ozon и до упаковки для передачи покупателю.\n - __Текущая цена с учётом скидки, руб.__ — цена, по которой товар продаётся сейчас (на момент загрузки отчёта, с учётом скидки). Если товар участвует в акции, указана цена без её учёта.\n - __Базовая цена (цена до скидок), руб.__ — цена без учёта скидки.\n - __Цена Premium, руб.__ — цена для покупателей с подпиской Ozon Premium.\n - __Рекомендованная цена, руб.__ — минимальная цена на товар на другой торговой площадке.\n - __Актуальная ссылка на рекомендованную цену__ — ссылка на товар с рекомендованной ценой на другой торговой площадке.\n", + "operationId": "ReportAPI_CreateCompanyProductsReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportCreateCompanyProductsReportRequest" + }, + "example": { + "language": "DEFAULT", + "offer_id": [], + "search": "", + "sku": [], + "visibility": "ALL" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт по товарам", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportCreateReportResponse" + }, + "example": { + "result": { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v2/report/returns/create": { + "post": { + "summary": "Отчёт о возвратах", + "description": "Метод для получения отчёта о возвратах FBO и FBS.", + "operationId": "ReportAPI_ReportReturnsCreate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReportReturnsCreateRequest" + }, + "example": { + "filter": { + "delivery_schema": "fbs", + "date_from": "2024-09-16T00:00:00.000Z", + "date_to": "2024-09-19T23:59:59.999Z", + "status": "MovingToSeller" + }, + "language": "DEFAULT" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт о возвратах FBO и FBS", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ReportReturnsCreateResponse" + }, + "example": { + "result": { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/report/postings/create": { + "post": { + "summary": "Отчёт об отправлениях", + "description": "Отчёт об отправлениях с информацией по заказам:\n - статусы заказов,\n - дата начала обработки,\n - номера заказов,\n - номера отправлений,\n - стоимость отправлений,\n - содержимое отправлений.\nСоответствует разделу **FBO → Заказы со склада Ozon** и **FBS → Заказы с моих складов → CSV** в личном кабинете.\n", + "operationId": "ReportAPI_CreateCompanyPostingsReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportCreateCompanyPostingsReportRequest" + }, + "example": { + "filter": { + "processed_at_from": "2021-09-02T17:10:54.861Z", + "processed_at_to": "2021-11-02T17:10:54.861Z", + "delivery_schema": [ + "fbo" + ], + "sku": [], + "cancel_reason_id": [], + "offer_id": "", + "status_alias": [], + "statuses": [], + "title": "" + }, + "language": "DEFAULT" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт об отправлениях", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportCreateReportResponse" + }, + "example": { + "result": { + "code": "REPORT_seller_postings_514893_1722847571_32a3508c-6b53-408c-a212-6c97138d23ed" + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/finance/cash-flow-statement/list": { + "post": { + "summary": "Финансовый отчёт", + "operationId": "FinanceAPI_FinanceCashFlowStatementList", + "description": "Метод для получения финансового отчёта за периоды с 01 по 15 и с 16 по 31. \nЗапросить отчёт за отдельные дни не получится. \nСоответствует разделу **Финансы → Баланс** в личном кабинете.\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3FinanceCashFlowStatementListRequest" + }, + "example": { + "date": { + "from": "2022-01-01T00:00:00.000Z", + "to": "2022-12-31T00:00:00.000Z" + }, + "with_details": true, + "page": 1, + "page_size": 1 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Финансовый отчёт", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v3FinanceCashFlowStatementListResponse" + }, + "example": { + "result": { + "cash_flows": [ + { + "commission_amount": 1437, + "currency_code": "string", + "item_delivery_and_return_amount": 1991, + "orders_amount": 1000, + "period": { + "begin": "2023-04-03T09:12:10.239Z", + "end": "2023-04-03T09:12:10.239Z", + "id": 11567022278500 + }, + "returns_amount": -3000, + "services_amount": 8471.28 + } + ], + "details": { + "period": { + "begin": "2023-04-03T09:12:10.239Z", + "end": "2023-04-03T09:12:10.239Z", + "id": 11567022278500 + }, + "payments": [ + { + "payment": 0, + "currency_code": "string" + } + ], + "begin_balance_amount": 0, + "delivery": { + "total": 0, + "amount": 0, + "delivery_services": { + "total": 0, + "items": [ + { + "name": "string", + "price": 0 + } + ] + } + }, + "return": { + "total": 0, + "amount": 0, + "return_services": { + "total": 0, + "items": [ + { + "name": "string", + "price": 0 + } + ] + } + }, + "loan": 0, + "invoice_transfer": 0, + "rfbs": { + "total": 0, + "transfer_delivery": 0, + "transfer_delivery_return": 0, + "compensation_delivery_return": 0, + "partial_compensation": 0, + "partial_compensation_return": 0 + }, + "services": { + "total": 0, + "items": [ + { + "name": "string", + "price": 0 + } + ] + }, + "others": { + "total": 0, + "items": [ + { + "name": "string", + "price": 0 + } + ] + }, + "end_balance_amount": 0 + } + }, + "page_count": 15 + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/report/discounted/create": { + "post": { + "summary": "Отчёт об уценённых товарах", + "description": "Запускает генерацию отчёта по уценённым товарам на складе Ozon.\nOzon может сам уценить товар, например, при повреждении.\n\nВ результате запроса будет не сам отчёт, а его уникальный идентификатор. \nЧтобы получить отчёт, отправьте идентификатор в запросе метода [/v1/report/info](#operation/ReportAPI_ReportInfo).\n\nС одного аккаунта продавца можно отправить 1 запрос в минуту.\nСоответствует разделу **Аналитика → Отчёты → Продажи со склада Ozon → Товары, уценённые Ozon** в личном кабинете.\n", + "operationId": "ReportAPI_CreateDiscountedReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportCreateDiscountedRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reportCreateDiscountedResponse" + }, + "example": { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/report/warehouse/stock": { + "post": { + "summary": "Отчёт об остатках на FBS-складе", + "description": "\nОтчёт с информацией о количестве доступных и зарезервированных единиц товара на складе.\nСоответствует разделу **FBS → Управление логистикой → Управление остатками → Скачать в XLS** в личном кабинете.\n\nВ результате запроса будет не сам отчёт, а его уникальный идентификатор. \nЧтобы получить отчёт, отправьте идентификатор в запросе метода [/v1/report/info](#operation/ReportAPI_ReportInfo).\n", + "operationId": "ReportAPI_CreateStockByWarehouseReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateStockByWarehouseReportRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commonCreateReportResponse" + }, + "example": { + "code": "REPORT_seller_products_924336_1720170405_a9ea2f27-a473-4b13-99f9-d0cfcb5b1a69" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "ReportAPI" + ] + } + }, + "/v1/analytics/data": { + "post": { + "summary": "Данные аналитики", + "description": "Уĸажите период и метриĸи, ĸоторые нужно посчитать. В ответе будет аналитиĸа, сгруппированная по параметру `dimensions`.\n\nДля продавцов без подписки [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus):\n- доступны данные за последние 3 месяца,\n- есть ограничения по способам группировки данных и метрикам.\n\nДля продавцов с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus) ограничений нет.\n\nМетод можно использовать не больше 1 раза в минуту.\nСоответствует разделу **Аналитика → Графики** в личном кабинете.\n", + "operationId": "AnalyticsAPI_AnalyticsGetData", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/analyticsAnalyticsGetDataRequest" + }, + "example": { + "date_from": "2020-09-01", + "date_to": "2021-10-15", + "metrics": [ + "hits_view_search" + ], + "dimension": [ + "sku", + "day" + ], + "filters": [], + "sort": [ + { + "key": "hits_view_search", + "order": "DESC" + } + ], + "limit": 1000, + "offset": 0 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Данные аналитики", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/analyticsAnalyticsGetDataResponse" + }, + "example": { + "result": { + "data": [], + "totals": [ + 0 + ] + }, + "timestamp": "2021-11-25 15:19:21" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "AnalyticsAPI" + ] + } + }, + "/v2/analytics/stock_on_warehouses": { + "post": { + "summary": "Отчёт по остаткам и товарам", + "description": "\n\n\nМетод для получения отчёта по остаткам и товарам в перемещении по складам Ozon.\n\n\n", + "operationId": "AnalyticsAPI_AnalyticsGetStockOnWarehousesV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/analyticsStockOnWarehouseRequest" + }, + "example": { + "limit": 1000, + "offset": 0, + "warehouse_type": "ALL" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт по остаткам и товарам", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/analyticsStockOnWarehouseResponse" + }, + "example": { + "result": { + "rows": [ + { + "free_to_sell_amount": 0, + "item_code": "string", + "item_name": "string", + "promised_amount": 0, + "reserved_amount": 0, + "sku": 0, + "warehouse_name": "string" + } + ] + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "AnalyticsAPI" + ] + } + }, + "/v1/analytics/turnover/stocks": { + "post": { + "summary": "Оборачиваемость товара", + "description": "Используйте метод, чтобы узнать оборачиваемость товара и количество дней, на которое хватит текущего остатка. \nМетод соответствует разделу [**FBO -> Управление остатками**](https://seller.ozon.ru/app/supply/stocks-management) в личном кабинете.\nВы можете делать не больше 1 запроса в минуту по одному кабинету `Client-Id`.\n \nЕсли вы запрашиваете список товаров по `sku`, параметры `limit` и `offset` необязательны.\n", + "operationId": "AnalyticsAPI_StocksTurnover", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsTurnoverStocksRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об оборачиваемости", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsTurnoverStocksResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "AnalyticsAPI" + ] + } + }, + "/v1/analytics/product-queries": { + "post": { + "summary": "Получить информацию о запросах моих товаров", + "description": "Используйте метод, чтобы получить данные о запросах ваших товаров. Полная аналитика доступна с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus). Без подписки вы можете посмотреть часть показателей. Метод аналогичен вкладке **Товары в поиске → Запросы моего товара** в личном кабинете.\n\nАналитику по запросам можно проверить за определённые даты. Для этого укажите интервал в полях `date_from` и `date_to`. Данные за последний месяц доступны в любом интервале, кроме трёх дней от текущей даты — в эти дни происходит расчёт. Аналитика за даты позже, чем месяц назад, доступна только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus) и только по неделям — в запросе укажите параметр `date_from`.\n", + "operationId": "AnalyticsAPI_AnalyticsProductQueries", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesRequest" + }, + "example": { + "date_from": "2019-08-24T14:15:22Z", + "date_to": "2019-08-24T14:15:22Z", + "page": 1, + "page_size": 1000, + "skus": [ + "string" + ], + "sort_by": "BY_SEARCHES", + "sort_dir": "DESCENDING" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о запросах моих товаров", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "AnalyticsAPI" + ] + } + }, + "/v1/analytics/product-queries/details": { + "post": { + "summary": "Получить детализацию запросов по товару", + "description": "Используйте метод, чтобы получить данные по запросам на конкретный товар. Полная аналитика доступна с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus). Без подписки вы можете посмотреть часть показателей. Метод аналогичен просмотру данных по товару на вкладке **Товары в поиске → Запросы моего товара** в личном кабинете.\n\nАналитику по запросам можно проверить за определённые даты. Для этого укажите интервал в полях `date_from` и `date_to`. Данные за последний месяц доступны в любом интервале, кроме трёх дней от текущей даты — в эти дни происходит расчёт. Аналитика за даты позже, чем месяц назад, доступна только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus) и только по неделям — в запросе укажите параметр `date_from`.\n", + "operationId": "AnalyticsAPI_AnalyticsProductQueriesDetails", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesDetailsRequest" + }, + "example": { + "date_from": "2019-08-24T14:15:22Z", + "date_to": "2019-08-24T14:15:22Z", + "limit_by_sku": 0, + "page": 1, + "page_size": 1000, + "skus": [ + "string" + ], + "sort_by": "BY_SEARCHES", + "sort_dir": "DESCENDING" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о запросах по конкретному товару", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesDetailsResponse" + } + } + } + }, + "400": { + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "../../components/schemas/rpcStatus.yaml" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "../../components/schemas/rpcStatus.yaml" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "../../components/schemas/rpcStatus.yaml" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "../../components/schemas/rpcStatus.yaml" + } + } + } + }, + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "AnalyticsAPI" + ] + } + }, + "/v2/finance/realization": { + "post": { + "summary": "Отчёт о реализации товаров (версия 2)", + "description": "\n\nОтчёт о реализации доставленных и возвращённых товаров за месяц. Отмены и невыкупы не включаются.\nСоответствует разделу **Финансы → Документы → Отчёты о реализации → Отчёт о реализации товара** в личном кабинете.\n\nОтчёт придёт не позднее 5-го числа следующего месяца.\n\n[Подробнее об отчёте в Базе знаний продавца](https://seller-edu.ozon.ru/docs/finances-documents/calculations-documents/otchet-o-realizacii-tovarov.html)\n", + "operationId": "FinanceAPI_GetRealizationReportV2", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetRealizationReportRequestV2" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт о реализации", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2GetRealizationReportResponseV2" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v1/finance/realization/posting": { + "post": { + "summary": "Позаказный отчёт о реализации товаров", + "description": "\n\nОтчёт о реализации доставленных и возвращённых товаров с детализацией по каждому заказу. Отмены и невыкупы не включаются. Отчёт доступен с настоящего времени по август 2023 года включительно.\n", + "operationId": "FinanceAPI_GetRealizationReportV1", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetRealizationReportPostingRequest" + }, + "example": { + "month": 2, + "year": 2025 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Позаказный отчёт о реализации", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetRealizationReportPostingResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v3/finance/transaction/list": { + "post": { + "summary": "Список транзакций", + "description": "\n\n\nВозвращает подробную информацию по всем начислениям. Максимальный период, за который можно получить информацию в одном запросе — 1 месяц.\n\nЕсли в запросе не указывать `posting_number`, то в ответе будут все отправления за указанный период или отправления определённого типа.\n", + "operationId": "FinanceAPI_FinanceTransactionListV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/financev3FinanceTransactionListV3Request" + }, + "example": { + "filter": { + "date": { + "from": "2021-11-01T00:00:00.000Z", + "to": "2021-11-02T00:00:00.000Z" + }, + "operation_type": [], + "posting_number": "", + "transaction_type": "all" + }, + "page": 1, + "page_size": 1000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список транзакций", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/financev3FinanceTransactionListV3Response" + }, + "example": { + "result": { + "operations": [ + { + "operation_id": 11401182187840, + "operation_type": "MarketplaceMarketingActionCostOperation", + "operation_date": "2021-11-01 00:00:00", + "operation_type_name": "Услуги продвижения товаров", + "delivery_charge": 0, + "return_delivery_charge": 0, + "accruals_for_sale": 0, + "sale_commission": 0, + "amount": -6.46, + "type": "services", + "posting": { + "delivery_schema": "", + "order_date": "", + "posting_number": "", + "warehouse_id": 0 + }, + "items": [], + "services": [] + } + ], + "page_count": 1, + "row_count": 355 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v3/finance/transaction/totals": { + "post": { + "summary": "Суммы транзакций", + "description": "\n\n\nВозвращает итоговые суммы по транзакциям за указанный период. \n\nЕсли вы неправильно заполните номера отправлений, в ответе вернутся нулевые значения.\n", + "operationId": "FinanceAPI_FinanceTransactionTotalV3", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/financev3FinanceTransactionTotalsV3Request" + }, + "example": { + "date": { + "from": "2021-11-01T00:00:00.000Z", + "to": "2021-11-02T00:00:00.000Z" + }, + "posting_number": "", + "transaction_type": "all" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Суммы транзакций", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/financev3FinanceTransactionTotalsV3Response" + }, + "example": { + "result": { + "accruals_for_sale": 96647.58, + "sale_commission": -11456.65, + "processing_and_delivery": -24405.68, + "refunds_and_cancellations": -330, + "services_amount": -1307.57, + "compensation_amount": 0, + "money_transfer": 0, + "others_amount": 113.05 + } + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v1/finance/document-b2b-sales": { + "post": { + "summary": "Реестр продаж юридическим лицам", + "description": "Используйте метод, чтобы получить отчёт по продажам юридическим лицам. Соответствует разделу **Финансы → Документы → Реестр продаж юр. лицам** в личном кабинете.", + "operationId": "ReportAPI_CreateDocumentB2BSalesReport", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateDocumentB2BSalesReportRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commonCreateReportResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v1/finance/document-b2b-sales/json": { + "post": { + "summary": "Реестр продаж юридическим лицам в JSON-формате", + "description": "Используйте метод, чтобы получить отчёт по продажам юридическим лицам в JSON-формате. Соответствует разделу **Финансы → Документы → Реестр продаж юр. лицам** в личном кабинете.\n", + "tags": [ + "FinanceAPI" + ], + "operationId": "ReportAPI_CreateDocumentB2BSalesJSONReport", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateDocumentB2BSalesJSONReportRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт в JSON-формате", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateDocumentB2BSalesJSONReportResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/finance/mutual-settlement": { + "post": { + "summary": "Отчёт о взаиморасчётах", + "description": "Используйте метод, чтобы получить отчёт о взаиморасчетах. Соответствует разделу **Финансы → Документы → Аналитические отчеты → Отчет о взаиморасчетах** в личном кабинете.", + "operationId": "ReportAPI_CreateMutualSettlementReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CreateMutualSettlementReportRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Результат запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commonCreateReportResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v1/finance/realization/by-day": { + "post": { + "summary": "Отчёт о реализации товаров за день", + "description": "Метод возвращает данные о суммах реализации из [отчёта о реализации товаров](#operation/FinanceAPI_GetRealizationReportV2) за день. Отмены и невыкупы не включаются. Данные доступны не более чем за 32 календарных дня от текущей даты. Метод доступен только с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).", + "operationId": "FinanceAPI_GetRealizationByDayReportV1", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetRealizationReportByDayRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт о реализации за день", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRealizationReportByDayResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v1/finance/products/buyout": { + "post": { + "summary": "Отчёт по выкупленным товарам", + "operationId": "GetFinanceProductsBuyout", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetFinanceProductsBuyoutRequest" + }, + "example": { + "date_from": "YYYY-MM-DD", + "date_to": "YYYY-MM-DD" + } + } + } + }, + "responses": { + "200": { + "description": "Отчёт по выкупленным товарам", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetFinanceProductsBuyoutResponse" + }, + "example": { + "products": [ + { + "name": "Футболка Daniele Patrici", + "offer_id": "y9604060-S", + "sku": "985111329", + "posting_number": "0208194185-0001-1", + "seller_price_per_instance": 95, + "deduction_by_category_percent": "3.13", + "buyout_price": 92.3, + "vat_percent": 20, + "quantity": 1, + "amount": 92.3 + }, + { + "name": "Сабо T.TACCARDI", + "offer_id": "W1496390-41", + "sku": "1505091950", + "posting_number": "84189625-0009-3", + "seller_price_per_instance": 2086, + "deduction_by_category_percent": "3.01", + "buyout_price": 2023.3, + "vat_percent": 20, + "quantity": 1, + "amount": 2023.3 + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "FinanceAPI" + ] + } + }, + "/v1/finance/compensation": { + "post": { + "summary": "Отчёт о компенсациях", + "description": "Метод для получения отчёта о компенсациях. Соответствует отчёту из раздела **Финансы → Документы → Компенсации и прочие начисления** в личном кабинете.\n", + "tags": [ + "FinanceAPI" + ], + "operationId": "ReportAPI_GetCompensationReport", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetCompensationReportRequest" + }, + "example": { + "date": "2023-09", + "language": "RU" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт о компенсациях", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateReportResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/finance/decompensation": { + "post": { + "summary": "Отчёт о декомпенсациях", + "description": "Метод для получения отчёта о декомпенсациях. Соответствует отчёту из раздела **Финансы → Документы → Компенсации и прочие начисления** в личном кабинете.\n", + "tags": [ + "FinanceAPI" + ], + "operationId": "ReportAPI_GetDecompensationReport", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetDecompensationReportRequest" + }, + "example": { + "date": "2023-09", + "language": "RU" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт о декомпенсациях", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateReportResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/rating/summary": { + "post": { + "tags": [ + "SellerRating" + ], + "summary": "Получить информацию о текущих рейтингах продавца", + "description": "Рейтинг продавца по следующим показателям: индекс цен, доставки вовремя, процент отмен, жалобы и другие.\nСоответствует разделу **Рейтинги → Рейтинги продавца** в личном кабинете.\n", + "operationId": "RatingAPI_RatingSummaryV1", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о рейтингах", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1RatingSummaryV1Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/rating/history": { + "post": { + "tags": [ + "SellerRating" + ], + "summary": "Получить информацию о рейтингах продавца за период", + "description": "Информация о рейтингах за заданный период и с фильтром по нужному рейтингу.\nСоответствует разделу **Рейтинги → Рейтинги продавца** в личном кабинете.\n", + "operationId": "RatingAPI_RatingHistoryV1", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1RatingHistoryV1Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о рейтингах", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1RatingHistoryV1Response" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/analytics/manage/stocks": { + "post": { + "summary": "Управление остатками", + "description": "\n\n\nИспользуйте метод, чтобы узнать, сколько товаров осталось на складах FBO.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1106-Razdel-upravleniia-ostatkami-analytics-manage-stocks)\nв сообществе разработчиков Ozon for dev.\n", + "operationId": "AnalyticsAPI_ManageStocks", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsManageStocksRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об остатках", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsManageStocksResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/analytics/stocks": { + "post": { + "summary": "Получить аналитику по остаткам", + "description": "Используйте метод, чтобы получить аналитику по остаткам товаров на складах. Метод соответствует разделу [**FBO → Управление остатками**](https://seller.ozon.ru/app/fbo-stocks/stocks-management/) в личном кабинете. Аналитика обновляется раз в день в 07:00 UTC.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1341-Novyi-metod-analitiki-po-ostatkam-na-skladakh-Ozon) в сообществе разработчиков Ozon for dev.\n", + "operationId": "AnalyticsAPI_AnalyticsStocks", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsStocksRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Аналитика по остаткам на складах", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AnalyticsStocksResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/analytics/average-delivery-time": { + "post": { + "summary": "Получить аналитику по среднему времени доставки", + "description": "Метод позволяет получить аналитику по среднему времени доставки товара до покупателя. Соответствует разделу **Аналитика → География продаж → Среднее время доставки** в личном кабинете. Детальную аналитику по каждому кластеру можно получить с помощью метода [/v1/analytics/average-delivery-time/details](#operation/AnalyticsAPI_AverageDeliveryTimeDetails).\n\n[Подробнее о среднем времени доставки в Базе знаний продавца](https://seller-edu.ozon.ru/analytics-and-metrics/graphs/srednee-vremya-dostavki)\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1421-Novye-metody-dlia-polucheniia-analitiki-po-srednemu-vremeni-dostavki) в сообществе разработчиков Ozon for dev.\n", + "operationId": "AnalyticsAPI_AverageDeliveryTime", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeRequest" + }, + "example": { + "delivery_schema": "ALL", + "sku": [ + "148313766" + ], + "supply_period": "FOUR_WEEKS" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Аналитика по среднему времени доставки", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponse" + }, + "example": { + "data": [ + { + "clusters_data": [ + { + "another_delivery_time": [], + "cluster_id": 147, + "delivery_time_FBO": 60, + "delivery_time_FBS": 60, + "delivery_time_status": "Medium", + "orders_count": 1, + "orders_percent": 2 + }, + { + "another_delivery_time": [ + { + "delivery_time": 28, + "orders_count": 30, + "orders_percent": 76, + "delivery_time_status": "Fast" + } + ], + "cluster_id": 154, + "delivery_time_FBO": 60, + "delivery_time_FBS": 60, + "delivery_time_status": "Medium", + "orders_count": 39, + "orders_percent": 84 + } + ], + "delivery_cluster_id": 150, + "metrics": { + "average_delivery_time": 46, + "average_delivery_time_status": "Medium", + "recommended_supply": 957, + "orders_count": { + "total": 46, + "fast": { + "value": 12, + "percent": 26 + }, + "medium": { + "value": 34, + "percent": 73 + }, + "long": { + "value": 0, + "percent": 0 + } + }, + "impact_share": 30, + "exact_impact_share": "13.9257", + "attention_level": "ATTENTION_HI", + "lost_profit": 1763110 + } + } + ], + "total": { + "average_delivery_time": 45, + "average_delivery_time_status": "Medium", + "recommended_supply": 18579, + "orders_count": { + "total": 201, + "fast": { + "value": 105, + "percent": 52 + }, + "medium": { + "value": 78, + "percent": 38 + }, + "long": { + "value": 18, + "percent": 8 + } + }, + "impact_share": 100, + "exact_impact_share": "13.9257", + "attention_level": "ATTENTION_LOW", + "lost_profit": 5877036 + } + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/analytics/average-delivery-time/details": { + "post": { + "description": "Метод является аналогом вкладки **Аналитика → География продаж → Среднее время доставки** в личном кабинете продавца.\n[Подробнее о среднем времени доставки в Базе знаний продавца](https://seller-edu.ozon.ru/analytics-and-metrics/graphs/srednee-vremya-dostavki).\n\nЧтобы получить общую аналитику по кластерам, используйте метод /v1/analytics/average-delivery-time.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1421-Novye-metody-dlia-polucheniia-analitiki-po-srednemu-vremeni-dostavki) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "BetaMethod" + ], + "summary": "Получить детальную аналитику по среднему времени доставки", + "operationId": "AnalyticsAPI_AverageDeliveryTimeDetails", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsRequest" + }, + "example": { + "cluster_id": 154, + "filters": { + "delivery_schema": "ALL", + "supply_period": "EIGHT_WEEKS" + }, + "limit": 1000, + "offset": 0 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Детальная аналитика", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponse" + }, + "example": { + "data": [ + { + "clusters_data": [ + { + "another_delivery_time": [], + "cluster_id": 154, + "delivery_time_FBO": 0, + "delivery_time_FBS": 0, + "delivery_time_status": "Fast", + "orders_count": 1, + "orders_percent": 100 + } + ], + "item": { + "name": "Мяч надувной для детей (набор: футбольный, баскетбольный, регби) с насосом", + "delivery_schema": "ALL", + "sku": 1423433655, + "offer_id": "59704000" + }, + "metrics": { + "average_delivery_time": 31, + "average_delivery_time_status": "Fast", + "recommended_supply": 0, + "orders_count": { + "total": 1, + "fast": { + "value": 1, + "percent": 100 + }, + "medium": { + "value": 0, + "percent": 0 + }, + "long": { + "value": 0, + "percent": 0 + } + }, + "impact_share": 0, + "exact_impact_share": "13.9257", + "attention_level": "LOW", + "lost_profit": 0 + } + } + ], + "total_rows": 10 + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/analytics/average-delivery-time/summary": { + "post": { + "summary": "Получить общую аналитику по среднему времени доставки", + "description": "Метод позволяет получить общую аналитику по среднему времени доставки товара до покупателя. Соответствует разделу **Аналитика → География продаж → Среднее время доставки** в личном кабинете. \n\nДетальную аналитику по каждому кластеру можно получить с помощью метода [/v1/analytics/average-delivery-time/details](#operation/AnalyticsAPI_AverageDeliveryTimeDetails). \nЧтобы получить аналитику по среднему времени доставки, используйте метод [/v1/analytics/average-delivery-time](#operation/AnalyticsAPI_AverageDeliveryTime).\n\n[Подробнее о среднем времени доставки в Базе знаний продавца](https://seller-edu.ozon.ru/analytics-and-metrics/graphs/srednee-vremya-dostavki)\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1421-Novye-metody-dlia-polucheniia-analitiki-po-srednemu-vremeni-dostavki) в сообществе разработчиков Ozon for dev.\n", + "operationId": "AverageDeliveryTimeSummary", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": null, + "responses": { + "200": { + "description": "Общая аналитика", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeSummaryResponse" + }, + "example": { + "average_delivery_time": 54, + "perfect_delivery_time": 40, + "current_tariff": { + "start": 52, + "tariff_status": "GOOD", + "tariff_value": 77.4, + "fee": 3.87 + }, + "updated_at": "0001-01-01T00:00:00Z", + "lost_profit": 40513 + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/carriage/set-postings": { + "post": { + "summary": "Изменение состава отгрузки", + "description": "\n\n\n
\n\n\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1182-Izmenenie-sostava-otgruzki)\nв сообществе разработчиков Ozon for dev.\n", + "operationId": "CarriageAPI_SetPostings", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SetPostingsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отправлении", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1SetPostingsResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/carriage/cancel": { + "post": { + "summary": "Удаление отгрузки", + "description": "Вы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1183-Otmena-aktualnoi-otgruzki-FBS)\nв сообществе разработчиков Ozon for dev.\n", + "operationId": "CarriageAPI_CarriageCancel", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageCancelRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отправлении", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CarriageCancelResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/product/action/timer/update": { + "post": { + "summary": "Обновление таймера актуальности минимальной цены", + "description": "\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1209-Uchet-minimalnoi-tseny) в сообществе разработчиков Ozon for dev.\n", + "operationId": "ProductAPI_ActionTimerUpdate", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductActionTimerUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Обновлено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductActionTimerUpdateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/product/action/timer/status": { + "post": { + "summary": "Получить статус установленного таймера", + "description": "\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1076-Beta-metody-dlia-polucheniia-otcheta-o-vzaimoraschetakh-i-otcheta-Reestr-prodazh-iur-litsam) в сообществе разработчиков Ozon for dev.\n", + "operationId": "ProductAPI_ActionTimerStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductActionTimerStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статусы", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductActionTimerStatusResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/product/info/wrong-volume": { + "post": { + "summary": "Список товаров с некорректными ОВХ", + "description": "Возвращает список товаров с некорректными объёмно-весовыми характеристиками (ОВХ). Если вы указали размеры правильно, обратитесь в поддержку Ozon.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1260-Informer-nekorrektnykh-OVKh) в сообществе разработчиков Ozon for dev.\n", + "operationId": "ProductAPI_ProductInfoWrongVolume", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductInfoWrongVolumeRequest" + }, + "example": { + "cursor": "", + "limit": 1000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о товарах с некорректными ОВХ", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ProductInfoWrongVolumeResponse" + } + } + } + }, + "400": { + "description": "Неверный параметр", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "403": { + "description": "Доступ запрещён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "404": { + "description": "Ответ не найден", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "409": { + "description": "Конфликт запроса", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + }, + "500": { + "description": "Внутренняя ошибка сервера", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/roles": { + "post": { + "summary": "Получить список ролей и методов по API-ключу", + "description": "Метод для получения информации и ролях и методах, привязанных к API-ключу.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1609-Novyi-metod-dlia-polucheniia-rolei-po-API-kliuchu)\nв сообществе разработчиков Ozon for dev.\n", + "operationId": "AccessAPI_RolesByToken", + "tags": [ + "BetaMethod" + ], + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1Empty" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список ролей и методов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1RolesByTokenResponse" + }, + "example": { + "roles": [ + { + "name": "Admin", + "methods": [ + "/v1/actions" + ] + }, + { + "name": "Posting FBS", + "methods": [ + "/v1/posting" + ] + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/removal/from-supply/list": { + "post": { + "summary": "Отчёт по вывозу и утилизации с поставки FBO", + "description": "Метод соответствует разделу [**FBO → Вывоз и утилизация**](https://seller.ozon.ru/app/fbo-operations/returns) в личном кабинете.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1608-Novye-metody-po-vyvozu-i-utilizatsii) в сообществе разработчиков Ozon for dev.\n", + "operationId": "GetSupplyReturnsSummaryReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyReturnsSummaryReportRequest" + }, + "example": { + "date_from": "2025-03-01T12:13:16.818Z", + "date_to": "2025-03-30T12:13:16.818Z", + "last_id": "", + "limit": 500 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт по вывозу и утилизации с поставки FBO", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplyReturnsSummaryReportResponse" + } + }, + "example": { + "returns_summary_report_rows": [ + { + "item_name": "Бипки", + "offer_id": "Бипка-0001", + "sku": "12314324", + "barcode": "", + "quantity_for_return": 1, + "quant_count": 0, + "box_id": "202501272", + "return_id": "934457", + "stock_type": "Излишек", + "return_created_at": "2025-03-13T06:49:37.591Z", + "is_auto_return": false, + "clearing_warehouse_name": "ХОРУГВИНО_РФЦ", + "return_state": "Отклонено складом", + "delivery_type": "Вывоз с ПВЗ/СЦ", + "preliminary_delivery_price": 15, + "box_length": 0.1, + "box_width": 0.1, + "box_height": 0.1, + "box_volume": 34, + "box_weight": 0.01, + "box_state": "Доступно к вывозу", + "destination_warehouse_name": "РАЗДОРЫ_4", + "destination_warehouse_address": "Россия, 143082, обл. Московская, р-н Одинцовский, д. Раздоры, Россия, Московская область, Красногорск, улица Липовой Рощи, 2к1", + "delivery_date": "2025-03-13T06:49:37.591Z", + "given_out_date": "2025-03-13T06:49:37.591Z", + "utilization_date": "2025-03-13T06:49:37.591Z" + } + ], + "last_id": "whcReturnId:934457_boxId:202501272_itemIndex:0" + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/removal/from-stock/list": { + "post": { + "summary": "Отчёт по вывозу и утилизации со стока FBO", + "description": "Метод соответствует разделу [**FBO → Вывоз и утилизация**](https://seller.ozon.ru/app/fbo-operations/returns) в личном кабинете.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1608-Novye-metody-po-vyvozu-i-utilizatsii) в сообществе разработчиков Ozon for dev.\n", + "operationId": "GetSupplierReturnsSummaryReport", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplierReturnsSummaryReportRequest" + }, + "example": { + "date_from": { + "nanos": 0, + "seconds": "1743465601" + }, + "date_to": { + "nanos": 0, + "seconds": "1745798341" + }, + "limit": 100, + "marketplace_company_id": "7", + "last_row": { + "value": "pariatur velit" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Отчёт по вывозу и утилизации со стока FBO", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1GetSupplierReturnsSummaryReportResponse" + } + }, + "example": { + "returns_summary_report_rows": [ + { + "item_name": "Бипки", + "offer_id": "Бипка-0001", + "sku": "12314324", + "barcode": "", + "quantity_for_return": 1, + "quant_count": 0, + "box_id": "202501272", + "return_id": "934457", + "stock_type": "Излишек", + "return_created_at": "2025-03-13T06:49:37.591Z", + "is_auto_return": false, + "clearing_warehouse_name": "ХОРУГВИНО_РФЦ", + "return_state": "Отклонено складом", + "delivery_type": "Вывоз с ПВЗ/СЦ", + "preliminary_delivery_price": 15, + "box_length": 0.1, + "box_width": 0.1, + "box_height": 0.1, + "box_volume": 34, + "box_weight": 0.01, + "box_state": "Доступно к вывозу", + "destination_warehouse_name": "РАЗДОРЫ_4", + "destination_warehouse_address": "Россия, 143082, обл. Московская, р-н Одинцовский, д. Раздоры, Россия, Московская область, Красногорск, улица Липовой Рощи, 2к1", + "delivery_date": "2025-03-13T06:49:37.591Z", + "given_out_date": "2025-03-13T06:49:37.591Z", + "utilization_date": "2025-03-13T06:49:37.591Z" + } + ], + "last_id": "whcReturnId:934457_boxId:202501272_itemIndex:0" + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "BetaMethod" + ] + } + }, + "/v1/review/comment/create": { + "post": { + "summary": "Оставить комментарий на отзыв", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_CommentCreate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CommentCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Комментарий создан", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CommentCreateResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/review/comment/delete": { + "post": { + "summary": "Удалить комментарий на отзыв", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_CommentDelete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CommentDeleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Комментарий удалён", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/review/comment/list": { + "post": { + "summary": "Список комментариев на отзыв", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n\nМетод возвращает информацию по комментариям на отзывы, которые прошли модерацию.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_CommentList", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CommentListRequest" + }, + "example": { + "limit": 100, + "offset": 0, + "review_id": "0187310a-97d9-dfcf-3039-82d809f0e233", + "sort_dir": "ASC" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация о комментариях на отзыв", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1CommentListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/review/change-status": { + "post": { + "summary": "Изменить статус отзывов", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_ReviewChangeStatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReviewChangeStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/review/count": { + "post": { + "summary": "Количество отзывов по статусам", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_ReviewCount", + "requestBody": { + "$ref": "#/components/requestBodies/QuestionAPI_GetQuestionCountBody" + }, + "responses": { + "200": { + "description": "Количество обработанных и необработанных отзывов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReviewCountResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/review/info": { + "post": { + "summary": "Получить информацию об отзыве", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_ReviewInfo", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReviewInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об отзыве", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReviewInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/review/list": { + "post": { + "summary": "Получить список отзывов", + "description": "Доступно только для продавцов с подпиской Premium Plus.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1190-Metody-dlia-raboty-s-otzyvami) в сообществе разработчиков Ozon for dev.\n\nМетод не возвращает параметры «Достоинства» и «Недостатки», если они есть в отзывах на товар. Эти параметры устарели, в новых отзывах их нет.\n", + "tags": [ + "ReviewAPI" + ], + "operationId": "ReviewAPI_ReviewList", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReviewListRequest" + }, + "example": { + "last_id": "", + "limit": 100, + "sort_dir": "ASC", + "status": "ALL" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список отзывов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ReviewListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + }, + "/v1/product/quant/list": { + "post": { + "summary": "Список эконом-товаров", + "operationId": "QuantProductList", + "description": "Вы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1084-Metody-po-tarifu-Ekonom) в сообществе разработчиков Ozon for dev.\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductV1QuantListRequest" + }, + "example": { + "cursor": "", + "limit": 1000, + "visibility": "ALL" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Эконом-товары", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductV1QuantListResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Quants" + ] + } + }, + "/v1/product/quant/info": { + "post": { + "summary": "Информация об эконом-товаре", + "operationId": "QuantGetInfo", + "description": "Вы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1084-Metody-po-tarifu-Ekonom) в сообществе разработчиков Ozon for dev.\n", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductV1QuantInfoRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Информация об эконом-товаре", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponse" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Quants" + ] + } + }, + "/v1/question/answer/create": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Создать ответ на вопрос", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "QuestionAnswer_Create", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateRequest" + }, + "example": { + "average_delivery_time": 54, + "perfect_delivery_time": 40, + "current_tariff": { + "start": 52, + "tariff_status": "GOOD", + "tariff_value": 77.4, + "fee": 3.87 + }, + "updated_at": "0001-01-01T00:00:00Z", + "lost_profit": 40513 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Идентификатор ответа на вопрос", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateResponse" + }, + "example": { + "answer_id": "0192e7ce-e12c-7a74-afc7-26e877799204" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/answer/delete": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Удалить ответ на вопрос", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "QuestionAnswer_Delete", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerDeleteRequest" + }, + "example": { + "answer_id": "0192e7ce-e12c-7a74-afc7-26e877799204", + "sku": 646399170 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Ответ удалён", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Ответ удалён" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/answer/list": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Список ответов на вопрос", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "QuestionAnswer_List", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerListRequest" + }, + "example": { + "last_id": "", + "question_id": "019228a7-91d8-76af-a73a-e989dfac7ac8", + "sku": 646399170 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список ответов на вопрос", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerListResponse" + }, + "example": { + "answers": [ + { + "author_name": "string", + "id": "string", + "published_at": "2024-08-14T11:44:35.352Z", + "question_id": "string", + "sku": 646399170, + "text": "string" + } + ], + "last_id": "string" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/change-status": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Изменить статус вопросов", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "Question_ChangeStatus", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionChangeStatusRequest" + }, + "example": { + "question_ids": [ + "string" + ], + "status": "VIEWED" + } + } + } + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Статус изменён." + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/count": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Количество вопросов по статусам", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "Question_Count", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "responses": { + "200": { + "description": "Количество вопросов по статусам", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionCountResponse" + }, + "example": { + "all": 10, + "new": 3, + "processed": 4, + "unprocessed": 1, + "viewed": 1 + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/info": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Информацию по вопросу", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "Question_Info", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionInfoRequest" + }, + "example": { + "question_id": "string" + } + } + } + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionInfoResponse" + }, + "example": { + "answers_count": "0", + "author_name": "Пользователь OZON", + "product_url": "https://www.ozon.ru/product/149829950/", + "sku": 646399170, + "id": "0192a009-769f-7ee9-b412-893045171a66", + "text": "Я отказываюсь от твоего отказа!", + "question_link": "https://www.ozon.ru/product/149829950/questions/?qid=290125772&utm_campaign=reviews_sc_link&utm_medium=share_button&utm_source=smm", + "published_at": "2024-10-08T10:09:29.099284Z", + "status": "VIEWED" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/list": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Список вопросов", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "Question_List", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionListRequest" + }, + "example": { + "filter": { + "date_from": "2019-08-24T14:15:22Z", + "date_to": "2019-08-24T14:15:22Z", + "status": "ALL" + }, + "last_id": "" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список вопросов", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionListResponse" + }, + "example": { + "questions": [ + { + "answers_count": 1, + "author_name": "Пользователь OZON", + "id": "019294ff-6888-7009-89d8-26569e4e450d", + "sku": 646399170, + "product_url": "https://www.ozon.ru/product/1649246352/", + "published_at": "2024-08-14T12:02:01.889Z", + "question_link": "https://www.ozon.ru/product/1649246352/questions/?qid=290180206&utm_campaign=reviews_sc_link&utm_medium=share_button&utm_source=smm", + "text": "Новый вопрос о товаре Света", + "status": "PROCESSED" + } + ], + "last_id": "019228a7-91d8-76af-a73a-e989dfac7ac8" + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/question/top-sku": { + "post": { + "tags": [ + "Questions&Answers" + ], + "summary": "Товары с наибольшим количеством вопросов", + "description": "Метод доступен по подписке [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n\nВы можете оставить обратную связь по этому методу в комментариях к обсуждению в [сообществе разработчиков Ozon for dev](https://dev.ozon.ru/community/1198-Metody-dlia-raboty-s-voprosami-otvetami).\n", + "operationId": "Question_TopSku", + "parameters": [ + { + "$ref": "#/components/parameters/Client-Id" + }, + { + "$ref": "#/components/parameters/Api-Key" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionTopSkuRequest" + }, + "example": { + "limit": "100" + } + } + } + }, + "responses": { + "200": { + "description": "Статус изменён", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionTopSkuResponse" + }, + "example": { + "sku": [ + 56371271 + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1QuestionAnswerCreateDefault" + } + } + } + } + } + } + }, + "/v1/posting/digital/codes/upload": { + "post": { + "summary": "Загрузить коды цифровых товаров для отправления", + "description": "Метод доступен только продавцам, работающим с цифровыми товарами. Вы можете загрузить коды цифровых товаров в течение 24 часов с момента получения заказа.\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1588-Novye-metody-po-rabote-s-tsifrovymi-tovarami) в сообществе разработчиков Ozon for dev.\n", + "operationId": "UploadPostingCodes", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1UploadPostingCodesRequest" + }, + "example": { + "exemplars_by_sku": [ + { + "exemplar_qty": 3, + "not_available_exemplar_qty": 0, + "sku": "6605735423", + "exemplar_keys": [ + "4235234234", + "431234234", + "912382368" + ] + } + ], + "posting_number": "33920151-0719-1" + } + } + } + }, + "responses": { + "200": { + "description": "Коды цифровых товаров загружены", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1UploadPostingCodesResponse" + }, + "example": { + "exemplars_by_sku": [ + { + "sku": 123456, + "received_qty": 3, + "rejected_qty": 1, + "failed_exemplars": [ + { + "key": "23434252345", + "message": "Некорректный формат кода" + } + ] + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + }, + "tags": [ + "Digital" + ] + } + }, + "/v1/posting/digital/list": { + "post": { + "summary": "Получить список отправлений", + "description": "Возвращает список отправлений, по которым нужно загрузить коды цифровых товаров. Метод доступен только продавцам, работающим с цифровыми товарами. \n\nЧтобы получить список отправлений в любом статусе, воспользуйтесь методом [/v2/posting/fbo/list](#operation/PostingAPI_GetFboPostingList).\n\nВы можете оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1588-Novye-metody-po-rabote-s-tsifrovymi-tovarami) в сообществе разработчиков Ozon for dev.\n", + "operationId": "ListPostingCodes", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ListPostingCodesRequest" + }, + "example": { + "dir": "ASC", + "filter": { + "since": "2021-09-01T00:00:00.000Z", + "posting_number": [ + "string" + ], + "to": "2021-11-17T10:44:12.828Z" + }, + "limit": 5, + "offset": 0, + "with": { + "analytics_data": true, + "financial_data": true, + "legal_info": false + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Список отправлений", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ListPostingCodesResponse" + }, + "example": { + "result": [ + { + "order_id": 354680487, + "order_number": "16965409-0014", + "posting_number": "16965409-0014-1", + "status": "awaiting_packaging", + "cancel_reason_id": 0, + "created_at": "2021-09-01T00:23:45.607000Z", + "in_process_at": "2021-09-01T00:25:30.120000Z", + "waiting_deadline_for_digital_code": "2025-06-16T10:12:00.664Z", + "legal_info": { + "company_name": "string", + "inn": "string", + "kpp": "string" + }, + "products": [ + { + "sku": 160249683, + "name": "Так говорил Омар Хайям. Жизнеописание. Афоризмы и рубайят. Классика в словах и картинках", + "offer_id": "978-5-906864-56-7", + "price": "81.00", + "required_qty_for_digital_code": 3, + "currency_code": "RUB" + } + ], + "analytics_data": { + "city": "", + "delivery_type": "PVZ", + "is_premium": false, + "payment_type_group_name": "Карты оплаты", + "warehouse_id": 17717042026000, + "warehouse_name": "РОСТОВ-НА-ДОНУ_РФЦ", + "is_legal": false + }, + "financial_data": { + "products": [ + { + "commission_amount": 12.15, + "commission_percent": 15, + "payout": 68.85, + "product_id": 160249683, + "currency_code": "RUB", + "old_price": 115, + "price": 81, + "total_discount_value": 34, + "total_discount_percent": 29.57, + "actions": [ + "Системная виртуальная скидка селлера" + ] + } + ] + }, + "additional_data": [] + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/googlerpcStatus" + } + } + } + } + }, + "tags": [ + "Digital" + ] + } + }, + "/v1/product/digital/stocks/import": { + "post": { + "description": "Метод доступен только продавцам, работающим с цифровыми товарами. \n\nИспользуйте метод, чтобы изменить информацию о количестве товара в наличии. \n\nВы можете узнать о работе с цифровыми товарами и оставить обратную связь по этому методу в комментариях к [обсуждению](https://dev.ozon.ru/community/1588-Novye-metody-po-rabote-s-tsifrovymi-tovarami) в сообществе разработчиков Ozon for dev.\n", + "tags": [ + "Digital" + ], + "summary": "Обновить количество цифровых товаров", + "operationId": "DigitalProductAPI_StocksImport", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1StocksImportRequest" + }, + "example": { + "stocks": [ + { + "stock": "2", + "offer_id": "Мяч желтый 543561" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Количество товаров обновлено", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1StocksImportResponse" + }, + "example": { + "status": [ + { + "errors": [], + "offer_id": "Мяч желтый 543561", + "updated": true, + "product_id": "29235761", + "sku": "425291243" + } + ] + } + } + } + }, + "default": { + "description": "Ошибка", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rpcStatus" + } + } + } + } + } + } + } + }, + "components": { + "parameters": { + "Client-Id": { + "description": "Идентификатор клиента.", + "in": "header", + "name": "Client-Id", + "required": true, + "schema": { + "type": "string" + } + }, + "Api-Key": { + "description": "API-ключ.", + "in": "header", + "name": "Api-Key", + "required": true, + "schema": { + "type": "string" + } + } + }, + "schemas": { + "languageLanguage": { + "default": "DEFAULT", + "enum": [ + "DEFAULT", + "RU", + "EN", + "TR", + "ZH_HANS" + ], + "description": "Язык в ответе:\n- `EN` — английский,\n- `RU` — русский,\n- `TR` — турецкий,\n- `ZH_HANS` — китайский.\n\nПо умолчанию используется русский язык.\n", + "type": "string", + "title": "object" + }, + "v1GetTreeRequest": { + "type": "object", + "title": "object", + "properties": { + "language": { + "$ref": "#/components/schemas/languageLanguage" + } + } + }, + "protobufAny": { + "type": "object", + "title": "object", + "properties": { + "typeUrl": { + "type": "string", + "description": "Тип протокола передачи данных." + }, + "value": { + "type": "string", + "format": "byte", + "description": "Значение ошибки." + } + } + }, + "rpcStatus": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "Код ошибки." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/protobufAny" + }, + "description": "Дополнительная информация об ошибке." + }, + "message": { + "type": "string", + "description": "Описание ошибки." + } + } + }, + "v1GetTreeResponseItem": { + "type": "object", + "title": "object", + "properties": { + "description_category_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор категории." + }, + "category_name": { + "type": "string", + "description": "Название категории." + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GetTreeResponseItem" + }, + "description": "Дерево подкатегорий." + }, + "disabled": { + "type": "boolean", + "description": "`true`, если в категории нельзя создавать товары. `false`, если можно.\n" + }, + "type_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор типа товара." + }, + "type_name": { + "type": "string", + "description": "Название типа товара." + } + } + }, + "v1GetTreeResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "description": "Список категорий.", + "items": { + "$ref": "#/components/schemas/v1GetTreeResponseItem" + } + } + } + }, + "v1GetAttributesRequest": { + "required": [ + "description_category_id", + "type_id" + ], + "type": "object", + "title": "object", + "properties": { + "description_category_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор категории. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + }, + "language": { + "$ref": "#/components/schemas/languageLanguage" + }, + "type_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор типа товара. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + } + } + }, + "v1GetAttributesResponseAttribute": { + "type": "object", + "title": "object", + "properties": { + "category_dependent": { + "type": "boolean", + "description": "Признак, что значения словарного атрибута зависят от категории:\n- `true` — у атрибута разные значения для каждой категории.\n- `false` — у атрибута одинаковые значения для всех категорий.\n" + }, + "description": { + "type": "string", + "description": "Описание характеристики." + }, + "dictionary_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор справочника." + }, + "group_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор группы характеристик." + }, + "group_name": { + "type": "string", + "description": "Название группы характеристик." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор характеристики." + }, + "is_aspect": { + "type": "boolean", + "description": "Признак аспектного атрибута. Аспектный атрибут — характеристика, по которой отличаются товары одной модели. \n\nНапример, у одежды и обуви одной модели могут быть разные расцветки и размеры. То есть цвет и размер — это аспектные атрибуты.\n\nЗначения поля:\n - `true` — атрибут аспектный и его нельзя изменить после поставки товара на склад или продажи со своего склада.\n - `false` — атрибут не аспектный, можно изменить в любое время.\n" + }, + "is_collection": { + "type": "boolean", + "description": "- `true`, если характеристика — набор значений.\n- `false`, если характеристика — одно значение.\n" + }, + "is_required": { + "type": "boolean", + "description": "Признак обязательной характеристики:\n - `true` — обязательная характеристика,\n - `false` — характеристику можно не указывать.\n" + }, + "name": { + "type": "string", + "description": "Название." + }, + "type": { + "type": "string", + "description": "Тип характеристики." + }, + "attribute_complex_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор комплексного атрибута." + }, + "max_value_count": { + "format": "int64", + "type": "integer", + "description": "Максимальное количество значений для атрибута." + }, + "complex_is_collection": { + "type": "boolean", + "description": "Признак, что комплексная характеристика — набор значений:\n- `true`, если комплексная характеристика — набор значений,\n- `false`, если комплексная характеристика — одно значение.\n" + } + } + }, + "v1GetAttributesResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "description": "Результат запроса.", + "items": { + "$ref": "#/components/schemas/v1GetAttributesResponseAttribute" + } + } + } + }, + "v1GetAttributeValuesRequest": { + "required": [ + "attribute_id", + "description_category_id", + "limit", + "type_id" + ], + "type": "object", + "title": "object", + "properties": { + "attribute_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор характеристики. Можно получить с помощью метода [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes)." + }, + "description_category_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор категории. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + }, + "language": { + "$ref": "#/components/schemas/languageLanguage" + }, + "last_value_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор справочника, с которого нужно начать ответ. Если `last_value_id` — 10, то в ответе будут справочники, начиная с одиннадцатого." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество значений в ответе:\n- максимум — 2000,\n- минимум — 1.\n" + }, + "type_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор типа товара. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + } + } + }, + "v1GetAttributeValuesResponseDictionaryValue": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор значения характеристики." + }, + "info": { + "type": "string", + "description": "Дополнительное описание." + }, + "picture": { + "type": "string", + "description": "Ссылка на изображение." + }, + "value": { + "type": "string", + "description": "Значение характеристики товара." + } + } + }, + "v1GetAttributeValuesResponse": { + "type": "object", + "title": "object", + "properties": { + "has_next": { + "type": "boolean", + "description": "Признак, что в ответе вернулась только часть значений характеристики:\n- `true` — сделайте повторный запрос с новым параметром `last_value_id` для получения остальных значений;\n- `false` — ответ содержит все значения характеристики.\n" + }, + "result": { + "type": "array", + "description": "Значения характеристики.", + "items": { + "$ref": "#/components/schemas/v1GetAttributeValuesResponseDictionaryValue" + } + } + } + }, + "v1SearchAttributeValuesRequest": { + "required": [ + "attribute_id", + "description_category_id", + "limit", + "type_id", + "value" + ], + "type": "object", + "title": "object", + "properties": { + "attribute_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор характеристики. Можно получить с помощью метода [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes)." + }, + "description_category_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор категории. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество значений в ответе:\n- максимум — 100,\n- минимум — 1.\n" + }, + "type_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор типа товара. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + }, + "value": { + "type": "string", + "description": "Значение, по которому система будет искать справочные значения. Минимум — 2 символа." + } + } + }, + "SearchAttributeValuesResponseValue": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор значения характеристики." + }, + "info": { + "type": "string", + "description": "Дополнительная информация." + }, + "picture": { + "type": "string", + "description": "Ссылка на изображение." + }, + "value": { + "type": "string", + "description": "Значение характеристики товара." + } + } + }, + "v1SearchAttributeValuesResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Значения характеристики.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchAttributeValuesResponseValue" + } + } + } + }, + "v3ImportProductsRequestDictionaryValue": { + "type": "object", + "title": "object", + "properties": { + "dictionary_value_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор справочника." + }, + "value": { + "type": "string", + "description": "Значение из справочника." + } + } + }, + "v3ImportProductsRequestAttribute": { + "type": "object", + "title": "object", + "properties": { + "complex_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор характеристики, которая поддерживает вложенные свойства. Например, у характеристики «Процессор» есть вложенные характеристики «Производитель», «L2 Cache» и другие. У каждой из вложенных характеристик может быть несколько вариантов значений." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор характеристики." + }, + "values": { + "type": "array", + "description": "Массив вложенных значений характеристики.", + "items": { + "$ref": "#/components/schemas/v3ImportProductsRequestDictionaryValue" + } + } + } + }, + "v3ImportProductsRequestComplexAttribute": { + "type": "object", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v3ImportProductsRequestAttribute" + } + } + } + }, + "ImportProductsRequestPdfList": { + "properties": { + "index": { + "format": "int64", + "type": "integer", + "description": "Индекс документа в хранилище, который задаёт порядок." + }, + "name": { + "type": "string", + "description": "Название файла." + }, + "src_url": { + "type": "string", + "description": "Адрес файла." + } + }, + "type": "object", + "title": "object" + }, + "ImportProductRequestPromotion": { + "properties": { + "operation": { + "type": "string", + "description": "Атрибут для действий с акцией:\n- `ENABLE` — включить,\n- `DISABLE` — выключить,\n- `UNKNOWN` — ничего не менять, передаётся по умолчанию.\n", + "default": "UNKNOWN", + "enum": [ + "UNKNOWN", + "ENABLE", + "DISABLE" + ] + }, + "type": { + "type": "string", + "description": "Тип акции:\n- `REVIEWS_PROMO` — акция «Баллы за отзывы».\n", + "default": "REVIEWS_PROMO", + "enum": [ + "REVIEWS_PROMO" + ] + } + }, + "type": "object", + "title": "object" + }, + "v3ServiceType": { + "type": "string", + "default": "IS_CODE_SERVICE", + "enum": [ + "IS_CODE_SERVICE", + "IS_NO_CODE_SERVICE" + ] + }, + "v3ImportProductsRequestItem": { + "type": "object", + "title": "object", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v3ImportProductsRequestAttribute" + }, + "description": "Массив с характеристиками товара. Характеристики отличаются для разных категорий — их можно посмотреть в [Базе знаний продавца](https://seller-edu.ozon.ru/) или через API." + }, + "barcode": { + "type": "string", + "description": "Штрихкод товара." + }, + "color_image": { + "type": "string", + "description": "Маркетинговый цвет.\n\nФормат: адрес ссылки на изображение в общедоступном облачном хранилище. Формат изображения по ссылке — JPG.\n" + }, + "complex_attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v3ImportProductsRequestComplexAttribute" + }, + "description": "Массив характеристик, у которых есть вложенные атрибуты." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Переданное значение должно совпадать с валютой, которая установлена в настройках личного кабинета. По умолчанию передаётся `RUB` — российский рубль.\n\nНапример, если у вас установлена валюта взаиморасчётов юань, передавайте значение `CNY`, иначе вернётся ошибка.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "depth": { + "type": "integer", + "format": "int32", + "description": "Глубина упаковки." + }, + "description_category_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор категории. Можно получить с помощью метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree)." + }, + "new_description_category_id": { + "type": "integer", + "format": "int64", + "description": "Новый идентификатор категории. Укажите его, если нужно изменить текущую категорию товара." + }, + "dimension_unit": { + "type": "string", + "description": "Единица измерения габаритов:\n - `mm` — миллиметры,\n - `cm` — сантиметры,\n - `in` — дюймы.\n" + }, + "geo_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Геоограничения — при необходимости заполните параметр в личном кабинете при создании или редактировании товара.\n\nНеобязательный параметр.\n" + }, + "height": { + "type": "integer", + "format": "int32", + "description": "Высота упаковки." + }, + "images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Массив изображений. До 15 штук. Изображения показываются на сайте в таком же порядке, как в массиве.\n\nЕсли не передать значение `primary_image`, первое изображение в массиве будет главным для товара.\n\nЕсли вы передали значение `primary_image`, передайте до 14 изображений.\nЕсли параметр `primary_image` пустой, передайте до 15 изображений.\n\nФормат: адрес ссылки на изображение в общедоступном облачном хранилище. Формат изображения по ссылке — JPG или PNG.\n" + }, + "images360": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Массив изображений 360. До 70 штук.\n\nФормат: адрес ссылки на изображение в общедоступном облачном хранилище. Формат изображения по ссылке — JPG.\n" + }, + "name": { + "type": "string", + "description": "Название товара. До 500 символов." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул.\n\nМаксимальная длина строки — 50 символов.\n" + }, + "old_price": { + "type": "string", + "description": "Цена до скидок (будет зачёркнута на карточке товара). Указывается в рублях. Разделитель дробной\nчасти — точка, до двух знаков после точки.\n\nЕсли вы раньше передавали `old_price`, то при обновлении `price` также обновите `old_price`.\n" + }, + "pdf_list": { + "type": "array", + "description": "Список PDF-файлов.", + "items": { + "$ref": "#/components/schemas/ImportProductsRequestPdfList" + } + }, + "price": { + "type": "string", + "description": "Цена товара с учётом скидок, отображается на карточке товара. Если на товар нет скидок, укажите\nзначение `old_price` в этом параметре.\n" + }, + "primary_image": { + "type": "string", + "description": "Ссылка на главное изображение товара." + }, + "promotions": { + "type": "array", + "description": "Акции.", + "items": { + "$ref": "#/components/schemas/ImportProductRequestPromotion" + } + }, + "service_type": { + "$ref": "#/components/schemas/v3ServiceType" + }, + "type_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор типа товара. \nЗначения можно получить из такого же параметра `type_id` в ответе метода [/v1/description-category/tree](#operation/DescriptionCategoryAPI_GetTree).\nПри заполнении этого параметра можно не указывать в `attibutes ` атрибут с параметром `id:8229`, `type_id` будет использоваться в приоритете.\n" + }, + "vat": { + "type": "string", + "description": "Ставка НДС для товара:\n - `0` — не облагается НДС,\n - `0.05` — 5%,\n - `0.07` — 7%,\n - `0.1` — 10%,\n - `0.2` — 20%.\n\nПередавайте значение ставки, актуальное на данный момент.\n" + }, + "weight": { + "type": "integer", + "format": "int32", + "description": "Вес товара в упаковке. Предельное значение — 1000 килограммов или конвертированная величина в других\nединицах измерения.\n" + }, + "weight_unit": { + "type": "string", + "description": "Единица измерения веса:\n - `g` — граммы,\n - `kg` — килограммы,\n - `lb` — фунты.\n" + }, + "width": { + "type": "integer", + "format": "int32", + "description": "Ширина упаковки." + } + }, + "required": [ + "description_category_id", + "type_id" + ] + }, + "v3ImportProductsRequest": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v3ImportProductsRequestItem" + }, + "description": "Массив данных." + } + }, + "title": "object" + }, + "v3ImportProductsResponseResult": { + "type": "object", + "title": "object", + "properties": { + "task_id": { + "type": "integer", + "format": "int64", + "description": "Номер задания на загрузку товаров." + } + }, + "description": "Результаты запроса." + }, + "v3ImportProductsResponse": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v3ImportProductsResponseResult" + } + } + }, + "productGetImportProductsInfoRequest": { + "required": [ + "task_id" + ], + "properties": { + "task_id": { + "format": "int64", + "type": "integer", + "description": "Код задачи на импорт товаров. Можно получить с помощью метода [/v3/product/import](#operation/ProductAPI_ImportProductsV3)." + } + }, + "type": "object", + "title": "object" + }, + "v1ItemError": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "message": { + "type": "string", + "description": "Техническое описание ошибки." + }, + "state": { + "type": "string", + "description": "Состояние товара, в котором произошла ошибка." + }, + "level": { + "type": "string", + "description": "Уровень ошибки." + }, + "description": { + "type": "string", + "description": "Описание ошибки." + }, + "field": { + "type": "string", + "description": "Поле, в котором произошла ошибка." + }, + "attribute_id": { + "type": "integer", + "format": "int64", + "description": "Атрибут, в котором произошла ошибка." + }, + "attribute_name": { + "type": "string", + "description": "Название атрибута, в котором произошла ошибка." + } + } + }, + "GetImportProductsInfoResponseResultItem": { + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул.\n\nМаксимальная длина строки в значении поля — 50 символов.\n" + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "status": { + "type": "string", + "description": "Статус создания или обновления товара. Информация о товаре обрабатывается очередями.\nВозможные значения параметра:\n- `pending` — товар в очереди на обработку;\n- `imported` — товар успешно загружен;\n- `failed` — товар загружен с ошибками;\n- `skipped` — товар не был обновлен, так как запрос не содержал изменений.\n" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1ItemError" + }, + "description": "Массив ошибок." + } + }, + "type": "object", + "title": "object" + }, + "productGetImportProductsInfoResponseResult": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/GetImportProductsInfoResponseResultItem" + }, + "type": "array", + "description": "Информация о товарах." + }, + "total": { + "format": "int32", + "type": "integer", + "description": "Идентификатор товара в системе продавца — артикул." + } + }, + "type": "object", + "title": "object" + }, + "productGetImportProductsInfoResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/productGetImportProductsInfoResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsBySKURequestItem": { + "required": [ + "sku" + ], + "properties": { + "name": { + "type": "string", + "description": "Название товара. До 500 символов." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул.\n\nМаксимальная длина строки — 50 символов.\n" + }, + "old_price": { + "type": "string", + "description": "Цена до скидок (будет зачеркнута на карточке товара). Указывается в рублях. Разделитель дробной части — точка, до двух знаков после точки." + }, + "price": { + "type": "string", + "description": "Цена товара с учётом скидок, отображается на карточке товара. Если на товар нет скидок, укажите значение `old_price` в этом параметре." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "vat": { + "type": "string", + "description": "Ставка НДС для товара:\n - `0` — не облагается НДС,\n - `0.05` — 5%,\n - `0.07` — 7%,\n - `0.1` — 10%,\n - `0.2` — 20%.\n\nПередавайте значение ставки, актуальное на данный момент.\n" + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Переданное значение должно совпадать с валютой, которая установлена в настройках личного кабинета. По умолчанию передаётся `RUB` — российский рубль.\n\nНапример, если у вас установлена валюта взаиморасчётов юань, передавайте значение `CNY`, иначе вернётся ошибка.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsBySKURequest": { + "properties": { + "items": { + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/productImportProductsBySKURequestItem" + }, + "type": "array", + "description": "Информация о товарах." + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsBySKUResponseResult": { + "properties": { + "task_id": { + "format": "int64", + "type": "integer", + "description": "Код задачи на импорт товаров." + }, + "unmatched_sku_list": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Список идентификаторов товаров в системе продавца — `product_id`." + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsBySKUResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/productImportProductsBySKUResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "v1ProductUpdateAttributesRequestValue": { + "type": "object", + "title": "object", + "properties": { + "dictionary_value_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики в словаре." + }, + "value": { + "type": "string", + "description": "Значение характеристики товара." + } + } + }, + "v1ProductUpdateAttributesRequestAttribute": { + "type": "object", + "title": "object", + "properties": { + "complex_id": { + "description": "Идентификатор характеристики, которая поддерживает вложенные свойства. У каждой из вложенных характеристик может быть несколько вариантов значений.", + "type": "integer", + "format": "int64" + }, + "id": { + "description": "Идентификатор характеристики.", + "type": "integer", + "format": "int64" + }, + "values": { + "description": "Массив вложенных значений характеристики.", + "items": { + "$ref": "#/components/schemas/v1ProductUpdateAttributesRequestValue" + } + } + } + }, + "v1ProductUpdateAttributesRequestItem": { + "required": [ + "offer_id" + ], + "type": "object", + "title": "object", + "properties": { + "attributes": { + "description": "Характеристики товара.", + "items": { + "$ref": "#/components/schemas/v1ProductUpdateAttributesRequestAttribute" + } + }, + "offer_id": { + "description": "Идентификатор товара в системе продавца — артикул.", + "type": "string" + } + } + }, + "v1ProductUpdateAttributesRequest": { + "type": "object", + "title": "object", + "properties": { + "items": { + "description": "Товары и характеристики, которые нужно обновить.", + "items": { + "$ref": "#/components/schemas/v1ProductUpdateAttributesRequestItem" + } + } + } + }, + "v1ProductUpdateAttributesResponse": { + "type": "object", + "title": "object", + "properties": { + "task_id": { + "description": "Номер задания на обновление товаров. \n\nЧтобы проверить статус обновления, передайте полученное значение в метод [/v1/product/import/info](#operation/ProductAPI_GetImportProductsInfo).\n", + "type": "integer", + "format": "int64" + } + } + }, + "productv1ProductImportPicturesRequest": { + "required": [ + "product_id" + ], + "type": "object", + "title": "object", + "properties": { + "color_image": { + "type": "string", + "description": "Маркетинговый цвет." + }, + "images": { + "description": "Массив ссылок на изображения. \nИзображения в массиве расположены в порядке их расположения на сайте. \nПервое изображение в массиве будет главным.\n", + "items": { + "type": "string" + } + }, + "images360": { + "items": { + "type": "string" + }, + "description": "Массив изображений 360. До 70 штук.\n\nФормат: адрес ссылки на изображение в общедоступном облачном хранилище. Формат изображения по ссылке — JPG.\n" + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "productProductInfoPicturesResponsePicture": { + "type": "object", + "title": "object", + "properties": { + "is_360": { + "type": "boolean", + "description": "Признак, что картинка — изображение 360." + }, + "is_color": { + "type": "boolean", + "description": "Признак, что картинка — образец цвета." + }, + "is_primary": { + "type": "boolean", + "description": "Признак, что картинка — главное изображение." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "state": { + "type": "string", + "description": "Статус загрузки изображения. \n\nЕсли вызывали метод [/v1/product/pictures/import](#operation/ProductAPI_ProductImportPictures), то в ответе метода всегда будет `imported` — картинка не обработана.\nЧтобы посмотреть финальный статус, примерно через 10 секунд вызовите метод [/v1/product/pictures/info](#operation/ProductAPI_ProductInfoPictures).\n\nЕсли вызывали метод [/v1/product/pictures/info](#operation/ProductAPI_ProductInfoPictures), вы увидите один из статусов:\n- `uploaded` — изображение загружено;\n- `pending` — при загрузке изображения возникла ошибка. Повторите попытку позже.\n" + }, + "url": { + "description": "Адрес ссылки на изображение в общедоступном облачном хранилище. Формат изображения по ссылке — JPG или PNG.", + "type": "string" + } + } + }, + "productv1ProductInfoPicturesResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "pictures": { + "items": { + "$ref": "#/components/schemas/productProductInfoPicturesResponsePicture" + } + } + } + }, + "productv1ProductInfoPicturesResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/productv1ProductInfoPicturesResponseResult" + } + } + }, + "productv3GetProductListRequestFilterFilterVisibility": { + "default": "ALL", + "enum": [ + "ALL", + "VISIBLE", + "INVISIBLE", + "EMPTY_STOCK", + "NOT_MODERATED", + "MODERATED", + "DISABLED", + "STATE_FAILED", + "READY_TO_SUPPLY", + "VALIDATION_STATE_PENDING", + "VALIDATION_STATE_FAIL", + "VALIDATION_STATE_SUCCESS", + "TO_SUPPLY", + "IN_SALE", + "REMOVED_FROM_SALE", + "OVERPRICED", + "CRITICALLY_OVERPRICED", + "EMPTY_BARCODE", + "BARCODE_EXISTS", + "QUARANTINE", + "ARCHIVED", + "OVERPRICED_WITH_STOCK", + "PARTIAL_APPROVED" + ], + "type": "string", + "title": "string", + "description": "Фильтр по видимости товара:\n - `ALL` — все товары.\n - `VISIBLE` — товары, которые видны покупателям.\n - `INVISIBLE` — товары, которые не видны покупателям.\n - `EMPTY_STOCK` — товары, у которых не указано наличие.\n - `NOT_MODERATED` — товары, которые не прошли модерацию.\n - `MODERATED` — товары, которые прошли модерацию.\n - `DISABLED` — товары, которые видны покупателям, но недоступны к покупке.\n - `STATE_FAILED` — товары, создание которых завершилось ошибкой.\n - `READY_TO_SUPPLY` — товары, готовые к поставке.\n - `VALIDATION_STATE_PENDING` — товары, которые проходят проверку валидатором на премодерации.\n - `VALIDATION_STATE_FAIL` — товары, которые не прошли проверку валидатором на премодерации.\n - `VALIDATION_STATE_SUCCESS` — товары, которые прошли проверку валидатором на премодерации.\n - `TO_SUPPLY` — товары, готовые к продаже.\n - `IN_SALE` — товары в продаже.\n - `REMOVED_FROM_SALE` — товары, скрытые от покупателей.\n - `OVERPRICED` — товары с завышенной ценой.\n - `CRITICALLY_OVERPRICED` — товары со слишком завышенной ценой.\n - `EMPTY_BARCODE` — товары без штрихкода.\n - `BARCODE_EXISTS` — товары со штрихкодом.\n - `QUARANTINE` — товары на карантине после изменения цены более чем на 50%.\n - `ARCHIVED` — товары в архиве.\n - `OVERPRICED_WITH_STOCK` — товары в продаже со стоимостью выше, чем у конкурентов.\n - `PARTIAL_APPROVED` — товары в продаже с пустым или неполным описанием.\n" + }, + "productv3GetProductListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтр по товарам.", + "properties": { + "offer_id": { + "description": "Фильтр по параметру `offer_id`. Вы можете передавать список значений.", + "items": { + "type": "string" + } + }, + "product_id": { + "description": "Фильтр по параметру `product_id`. Вы можете передавать список значений.", + "items": { + "type": "string", + "format": "int64" + } + }, + "visibility": { + "$ref": "#/components/schemas/productv3GetProductListRequestFilterFilterVisibility" + } + } + }, + "productv3GetProductListRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/productv3GetProductListRequestFilter" + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице. При первом запросе оставьте это поле пустым.\n\nЧтобы получить следующие значения, укажите `last_id` из ответа предыдущего запроса.\n" + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество значений на странице. Минимум — 1, максимум — 1000." + } + } + }, + "productv3GetProductListResponseItemQuant": { + "type": "object", + "title": "object", + "properties": { + "quant_code": { + "type": "string", + "description": "Идентификатор эконом-товара." + }, + "quant_size": { + "type": "integer", + "format": "int64", + "description": "Размер кванта." + } + } + }, + "productv3GetProductListResponseItem": { + "type": "object", + "title": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Товар в архиве." + }, + "has_fbo_stocks": { + "type": "boolean", + "description": "Есть остатки на складах FBO." + }, + "has_fbs_stocks": { + "type": "boolean", + "description": "Есть остатки на складах FBS." + }, + "is_discounted": { + "type": "boolean", + "description": "Уценённый товар." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "quants": { + "description": "Список квантов.", + "$ref": "#/components/schemas/productv3GetProductListResponseItemQuant" + } + } + }, + "productv3GetProductListResponseResult": { + "type": "object", + "title": "object", + "description": "Результат.", + "properties": { + "items": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/productv3GetProductListResponseItem" + } + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице.\n\nЧтобы получить следующие значения, передайте полученное значение в следующем запросе в параметре `last_id`.\n" + }, + "total": { + "description": "Всего товаров.", + "type": "integer", + "format": "int32" + } + } + }, + "productv3GetProductListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/productv3GetProductListResponseResult" + } + } + }, + "v1GetProductRatingBySkuRequest": { + "required": [ + "skus" + ], + "type": "object", + "title": "object", + "properties": { + "skus": { + "description": "Идентификаторы товаров в системе Ozon — SKU, для которых нужно вернуть контент-рейтинг.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "GetProductRatingBySkuResponseRatingCondition": { + "type": "object", + "title": "object", + "properties": { + "cost": { + "type": "number", + "format": "float", + "description": "Количество баллов контент-рейтинга, которое даёт выполнение условия." + }, + "description": { + "type": "string", + "description": "Описание условия." + }, + "fulfilled": { + "type": "boolean", + "description": "Признак, что условие выполнено." + }, + "key": { + "type": "string", + "description": "Идентификатор условия." + } + } + }, + "GetProductRatingBySkuResponseRatingImproveAttribute": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор атрибута." + }, + "name": { + "type": "string", + "description": "Название атрибута." + } + } + }, + "GetProductRatingBySkuResponseRatingGroup": { + "type": "object", + "title": "object", + "properties": { + "conditions": { + "description": "Список условий, увеличивающих контент-рейтинг товара.", + "items": { + "$ref": "#/components/schemas/GetProductRatingBySkuResponseRatingCondition" + } + }, + "improve_at_least": { + "type": "integer", + "foramt": "int64", + "description": "Количество атрибутов, которые нужно заполнить для получения максимального балла в этой группе характеристик." + }, + "improve_attributes": { + "description": "Cписок атрибутов, заполнение которых может увеличить контент-рейтинг товара.", + "items": { + "$ref": "#/components/schemas/GetProductRatingBySkuResponseRatingImproveAttribute" + } + }, + "key": { + "type": "string", + "description": "Идентификатор группы." + }, + "name": { + "type": "string", + "description": "Название группы." + }, + "rating": { + "type": "number", + "format": "float", + "description": "Рейтинг в группе." + }, + "weight": { + "type": "number", + "format": "float", + "description": "Процент влияния характеристик группы на контент-рейтинг." + } + } + }, + "GetProductRatingBySkuResponseProductRating": { + "type": "object", + "title": "object", + "properties": { + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара на Ozon." + }, + "rating": { + "type": "number", + "format": "float", + "description": "Контент-рейтинг товара: от 0 до 100.\n" + }, + "groups": { + "description": "Группы характеристик, из которых складывается контент-рейтинг.", + "items": { + "$ref": "#/components/schemas/GetProductRatingBySkuResponseRatingGroup" + } + } + } + }, + "v1GetProductRatingBySkuResponse": { + "type": "object", + "title": "object", + "properties": { + "products": { + "description": "Контент-рейтинг товаров.", + "items": { + "$ref": "#/components/schemas/GetProductRatingBySkuResponseProductRating" + } + } + } + }, + "v3GetProductInfoListRequest": { + "type": "object", + "title": "object", + "properties": { + "offer_id": { + "description": "Идентификатор товара в системе продавца — артикул.", + "type": "array", + "items": { + "type": "string" + } + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — `product_id`.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "GetProductInfoListResponseCommission": { + "type": "object", + "title": "object", + "properties": { + "delivery_amount": { + "type": "number", + "format": "double", + "description": "Стоимость доставки." + }, + "percent": { + "type": "number", + "format": "double", + "description": "Процент комиссии." + }, + "return_amount": { + "description": "Стоимость возврата.", + "type": "number", + "format": "double" + }, + "sale_schema": { + "type": "string", + "description": "Схема продажи." + }, + "value": { + "type": "number", + "format": "double", + "description": "Сумма комиссии." + } + } + }, + "ErrorErrorLevel": { + "type": "string", + "title": "object", + "default": "ERROR_LEVEL_UNSPECIFIED", + "enum": [ + "ERROR_LEVEL_UNSPECIFIED", + "ERROR_LEVEL_ERROR", + "ERROR_LEVEL_WARNING", + "ERROR_LEVEL_INTERNAL" + ], + "description": "Описание уровней ошибок: \n - `ERROR_LEVEL_UNSPECIFIED` — не определён;\n - `ERROR_LEVEL_ERROR` — критичная ошибка, товар нельзя продавать;\n - `ERROR_LEVEL_INTERNAL` — критичная ошибка, товар нельзя продавать.\n - `ERROR_LEVEL_WARNING` — некритичная ошибка, товар можно продавать.\n\n[Подробнее об ошибках при создании товара в Базе знаний продавца](https://seller-edu.ozon.ru/work-with-goods/zagruzka-tovarov/creating-goods/oshibki-pri-rabote-s-kartochkami) \n" + }, + "HumanTextsParam": { + "type": "object", + "title": "object", + "properties": { + "name": { + "type": "string", + "description": "Название параметра." + }, + "value": { + "type": "string", + "description": "Значение параметра." + } + } + }, + "ErrorHumanTexts": { + "type": "object", + "title": "object", + "description": "Описание ошибок.", + "properties": { + "attribute_name": { + "type": "string", + "description": "Название атрибута, в котором произошла ошибка." + }, + "description": { + "type": "string", + "description": "Описание ошибки." + }, + "hint_code": { + "description": "Код ошибки в системе Ozon.", + "type": "string" + }, + "message": { + "description": "Текст ошибки.", + "type": "string" + }, + "params": { + "description": "В каких параметрах допущена ошибка.", + "type": "array", + "items": { + "$ref": "#/components/schemas/HumanTextsParam" + } + }, + "short_description": { + "description": "Краткое описание ошибки.", + "type": "string" + } + } + }, + "GetProductInfoListResponseError": { + "type": "object", + "title": "object", + "properties": { + "attribute_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор характеристики." + }, + "code": { + "type": "string", + "description": "Код ошибки." + }, + "field": { + "type": "string", + "description": "Поле, в котором найдена ошибка." + }, + "level": { + "$ref": "#/components/schemas/ErrorErrorLevel" + }, + "state": { + "type": "string", + "description": "Статус товара, в котором произошла ошибка." + }, + "texts": { + "$ref": "#/components/schemas/ErrorHumanTexts" + } + } + }, + "GetProductInfoListResponseModelInfo": { + "type": "object", + "title": "object", + "description": "Информация о модели товара.", + "properties": { + "count": { + "description": "Количество товаров в ответе.", + "type": "integer", + "format": "int64" + }, + "model_id": { + "description": "Идентификатор модели товара.", + "type": "integer", + "format": "int64" + } + } + }, + "PriceIndexesColorIndex": { + "type": "string", + "title": "string", + "default": "COLOR_INDEX_UNSPECIFIED", + "enum": [ + "COLOR_INDEX_UNSPECIFIED", + "COLOR_INDEX_WITHOUT_INDEX", + "COLOR_INDEX_GREEN", + "COLOR_INDEX_YELLOW", + "COLOR_INDEX_RED" + ], + "description": "Виды индекса цен:\n- `COLOR_INDEX_UNSPECIFIED` — не определён,\n- `COLOR_INDEX_WITHOUT_INDEX` — отсутствует,\n- `COLOR_INDEX_GREEN` — выгодный,\n- `COLOR_INDEX_YELLOW` — умеренный,\n- `COLOR_INDEX_RED` — невыгодный.\n\n[Подробнее об индексе цен в Базе знаний продавца](https://seller-edu.ozon.ru/ceny-i-akcii/rabota-s-cenami/price-index)\n" + }, + "PriceIndexesIndexDataExternal": { + "type": "object", + "title": "object", + "description": "Цена товара у конкурентов на других площадках.", + "properties": { + "minimal_price": { + "type": "string", + "description": "Минимальная цена товара у конкурентов на другой площадке." + }, + "minimal_price_currency": { + "type": "string", + "description": "Валюта цены." + }, + "price_index_value": { + "type": "number", + "format": "double", + "description": "Значение индекса цены." + } + } + }, + "PriceIndexesIndexDataOzon": { + "type": "object", + "title": "object", + "description": "Цена товара у конкурентов на Ozon.", + "properties": { + "minimal_price": { + "type": "string", + "description": "Минимальная цена товара у конкурентов на Ozon." + }, + "minimal_price_currency": { + "type": "string", + "description": "Валюта цены." + }, + "price_index_value": { + "type": "number", + "format": "double", + "description": "Значение индекса цены." + } + } + }, + "PriceIndexesIndexDataSelf": { + "type": "object", + "title": "object", + "description": "Цена вашего товара на других площадках.", + "properties": { + "minimal_price": { + "type": "string", + "description": "Минимальная цена вашего товара на других площадках." + }, + "minimal_price_currency": { + "type": "string", + "description": "Валюта цены." + }, + "price_index_value": { + "type": "number", + "format": "double", + "description": "Значение индекса цены." + } + } + }, + "GetProductInfoListResponsePriceIndexes": { + "type": "object", + "title": "object", + "description": "Ценовые индексы товара.", + "properties": { + "color_index": { + "$ref": "#/components/schemas/PriceIndexesColorIndex" + }, + "external_index_data": { + "$ref": "#/components/schemas/PriceIndexesIndexDataExternal" + }, + "ozon_index_data": { + "$ref": "#/components/schemas/PriceIndexesIndexDataOzon" + }, + "self_marketplaces_index_data": { + "$ref": "#/components/schemas/PriceIndexesIndexDataSelf" + } + } + }, + "SourceShipmentType": { + "type": "string", + "title": "string", + "default": "SHIPMENT_TYPE_UNSPECIFIED", + "enum": [ + "SHIPMENT_TYPE_UNSPECIFIED", + "SHIPMENT_TYPE_GENERAL", + "SHIPMENT_TYPE_BOX", + "SHIPMENT_TYPE_PALLET" + ], + "description": "Тип упаковки:\n- `SHIPMENT_TYPE_UNSPECIFIED` — не указано;\n- `SHIPMENT_TYPE_GENERAL` — обычный товар;\n- `SHIPMENT_TYPE_BOX` — коробка;\n- `SHIPMENT_TYPE_PALLET` — палета.\n" + }, + "GetProductInfoListResponseSource": { + "type": "object", + "title": "object", + "properties": { + "created_at": { + "description": "Дата создания товара.", + "type": "string", + "format": "date-time" + }, + "quant_code": { + "description": "Список квантов с товарами.", + "type": "string" + }, + "shipment_type": { + "$ref": "#/components/schemas/SourceShipmentType" + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара на Ozon — SKU." + }, + "source": { + "type": "string", + "description": "Схема продажи:\n- `SDS` — FBO и FBS с одинаковым SKU;\n- `FBO`;\n- `FBS`.\n" + } + } + }, + "GetProductInfoListResponseStatuses": { + "type": "object", + "title": "object", + "description": "Информация о статусах товара.", + "properties": { + "is_created": { + "description": "`true`, если товар создан корректно.\n", + "type": "boolean" + }, + "moderate_status": { + "type": "string", + "description": "Статус модерации." + }, + "status": { + "type": "string", + "description": "Статус товара." + }, + "status_description": { + "type": "string", + "description": "Описание статуса товара." + }, + "status_failed": { + "type": "string", + "description": "Статус товара, в котором возникла ошибка." + }, + "status_name": { + "type": "string", + "description": "Название статуса товара." + }, + "status_tooltip": { + "type": "string", + "description": "Описание статуса." + }, + "status_updated_at": { + "type": "string", + "format": "date-time", + "description": "Время последнего изменения статуса." + }, + "validation_status": { + "type": "string", + "description": "Статус валидации." + } + } + }, + "GetProductInfoListResponseStocksStock": { + "type": "object", + "title": "object", + "properties": { + "present": { + "type": "integer", + "format": "int32", + "description": "Сейчас на складе." + }, + "reserved": { + "type": "integer", + "format": "int32", + "description": "Зарезервировано." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "source": { + "type": "string", + "description": "Схема продажи." + } + } + }, + "GetProductInfoListResponseStocks": { + "type": "object", + "title": "object", + "description": "Информация об остатках товара.", + "properties": { + "has_stock": { + "type": "boolean", + "description": "`true`, если есть остаток на складах.\n" + }, + "stocks": { + "description": "Статус остатков товара.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetProductInfoListResponseStocksStock" + } + } + } + }, + "GetProductInfoListResponseVisibilityDetails": { + "type": "object", + "title": "object", + "description": "Настройки видимости товара.", + "properties": { + "has_price": { + "type": "boolean", + "description": "Если установлена цена — `true`." + }, + "has_stock": { + "type": "boolean", + "description": "Если есть остаток на складах — `true`." + } + } + }, + "v3GetProductInfoListResponseItem": { + "type": "object", + "title": "object", + "properties": { + "barcodes": { + "description": "Все штрихкоды товара.", + "type": "array", + "items": { + "type": "string" + } + }, + "color_image": { + "description": "Изображение цвета товара.", + "type": "array", + "items": { + "type": "string" + } + }, + "commissions": { + "description": "Информация о комиссиях.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetProductInfoListResponseCommission" + } + }, + "created_at": { + "description": "Дата и время создания товара.", + "type": "string", + "format": "date-time" + }, + "currency_code": { + "description": "Валюта.", + "type": "string" + }, + "description_category_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор категории.\nИспользуйте его с методами [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) и [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues).\n" + }, + "discounted_fbo_stocks": { + "type": "integer", + "format": "int32", + "description": "Остатки уценённого товара на складе Ozon." + }, + "errors": { + "description": "Информация об ошибках при создании или валидации товара.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetProductInfoListResponseError" + } + }, + "has_discounted_fbo_item": { + "type": "boolean", + "description": "Признак, что у товара есть уценённые аналоги на складе Ozon." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Массив ссылок на изображения. Изображения в массиве расположены в порядке их расположения на сайте. Если параметр\n`primary_image` не указан, первое изображение в массиве главное для товара.\n" + }, + "images360": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Массив изображений 360." + }, + "is_archived": { + "type": "boolean", + "description": "`true`, если товар архивирован вручную.\n" + }, + "is_autoarchived": { + "type": "boolean", + "description": "`true`, если товар архивирован автоматически.\n" + }, + "is_discounted": { + "type": "boolean", + "description": "Признак, является ли товар уценённым:\n - Если товар создавался продавцом как уценённый — `true`. \n - Если товар не уценённый или был уценён Ozon — `false`.\n" + }, + "is_kgt": { + "type": "boolean", + "description": "Признак крупногабаритного товара." + }, + "is_prepayment_allowed": { + "description": "`true`, если возможна предоплата.\n", + "type": "boolean" + }, + "is_super": { + "type": "boolean", + "description": "Признак супер-товара.\n\n[Подробнее о супер-товарах в Базе знаний продавца](https://seller-edu.ozon.ru/fbo/rabota-so-stokom/super-tovary)\n" + }, + "marketing_price": { + "description": "Цена на товар с учётом всех акций, которая будет указана на витрине Ozon, без учёта скидки по Ozon Карте.", + "type": "string" + }, + "min_price": { + "description": "Минимальная цена товара после применения акций.", + "type": "string" + }, + "model_info": { + "$ref": "#/components/schemas/GetProductInfoListResponseModelInfo" + }, + "name": { + "type": "string", + "description": "Название." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "old_price": { + "type": "string", + "description": "Цена до учёта скидок. На карточке товара отображается зачёркнутой." + }, + "price": { + "type": "string", + "description": "Цена товара с учётом скидок — это значение показывается на карточке товара." + }, + "price_indexes": { + "$ref": "#/components/schemas/GetProductInfoListResponsePriceIndexes" + }, + "primary_image": { + "description": "Главное изображение товара.", + "type": "array", + "items": { + "type": "string" + } + }, + "sources": { + "description": "Информация об источниках создания товара.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetProductInfoListResponseSource" + } + }, + "statuses": { + "$ref": "#/components/schemas/GetProductInfoListResponseStatuses" + }, + "stocks": { + "$ref": "#/components/schemas/GetProductInfoListResponseStocks" + }, + "type_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор типа товара." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Дата последнего обновления товара." + }, + "vat": { + "type": "string", + "description": "Ставка НДС для товара." + }, + "visibility_details": { + "$ref": "#/components/schemas/GetProductInfoListResponseVisibilityDetails" + }, + "volume_weight": { + "description": "Объёмный вес товара.", + "type": "number", + "format": "double" + } + } + }, + "v3GetProductInfoListResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "description": "Массив данных.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v3GetProductInfoListResponseItem" + } + } + } + }, + "productv2GetProductListRequestFilterFilterVisibility": { + "default": "ALL", + "enum": [ + "ALL", + "VISIBLE", + "INVISIBLE", + "EMPTY_STOCK", + "NOT_MODERATED", + "MODERATED", + "DISABLED", + "STATE_FAILED", + "READY_TO_SUPPLY", + "VALIDATION_STATE_PENDING", + "VALIDATION_STATE_FAIL", + "VALIDATION_STATE_SUCCESS", + "TO_SUPPLY", + "IN_SALE", + "REMOVED_FROM_SALE", + "OVERPRICED", + "CRITICALLY_OVERPRICED", + "EMPTY_BARCODE", + "BARCODE_EXISTS", + "QUARANTINE", + "ARCHIVED", + "OVERPRICED_WITH_STOCK", + "PARTIAL_APPROVED" + ], + "type": "string", + "title": "string", + "description": "Фильтр по видимости товара:\n - `ALL` — все товары, кроме архивных.\n - `VISIBLE` — товары, которые видны покупателям.\n - `INVISIBLE` — товары, которые не видны покупателям.\n - `EMPTY_STOCK` — товары, у которых не указано наличие.\n - `NOT_MODERATED` — товары, которые не прошли модерацию.\n - `MODERATED` — товары, которые прошли модерацию.\n - `DISABLED` — товары, которые видны покупателям, но недоступны к покупке.\n - `STATE_FAILED` — товары, создание которых завершилось ошибкой.\n - `READY_TO_SUPPLY` — товары, готовые к поставке.\n - `VALIDATION_STATE_PENDING` — товары, которые проходят проверку валидатором на премодерации.\n - `VALIDATION_STATE_FAIL` — товары, которые не прошли проверку валидатором на премодерации.\n - `VALIDATION_STATE_SUCCESS` — товары, которые прошли проверку валидатором на премодерации.\n - `TO_SUPPLY` — товары, готовые к продаже.\n - `IN_SALE` — товары в продаже.\n - `REMOVED_FROM_SALE` — товары, скрытые от покупателей.\n - `OVERPRICED` — товары с завышенной ценой.\n - `CRITICALLY_OVERPRICED` — товары со слишком завышенной ценой.\n - `EMPTY_BARCODE` — товары без штрихкода.\n - `BARCODE_EXISTS` — товары со штрихкодом.\n - `QUARANTINE` — товары на карантине после изменения цены более чем на 50%.\n - `ARCHIVED` — товары в архиве.\n - `OVERPRICED_WITH_STOCK` — товары в продаже со стоимостью выше, чем у конкурентов.\n - `PARTIAL_APPROVED` — товары в продаже с пустым или неполным описанием.\n" + }, + "productv4Filter": { + "type": "object", + "title": "object", + "description": "Фильтр по товарам.", + "properties": { + "offer_id": { + "description": "Фильтр по параметру `offer_id`. Можно передавать список значений.", + "items": { + "type": "string" + } + }, + "product_id": { + "description": "Фильтр по параметру `product_id`. Можно передавать до 1000 значений.", + "items": { + "type": "string", + "format": "int64" + } + }, + "sku": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "visibility": { + "$ref": "#/components/schemas/productv2GetProductListRequestFilterFilterVisibility" + } + } + }, + "productv4GetProductAttributesV4Request": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/productv4Filter" + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице. Оставьте это поле пустым при выполнении первого запроса.\n\nЧтобы получить следующие значения, укажите `last_id` из ответа предыдущего запроса.\n" + }, + "limit": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "description": "Количество значений на странице." + }, + "sort_by": { + "type": "string", + "description": "Параметр, по которому товары будут отсортированы:\n- `sku` — сортировка по идентификатору товара в системе Ozon;\n- `offer_id` — сортировка по артикулу товара;\n- `id` — сортировка по идентификатору товара;\n- `title` — сортировка по названию товара.\n" + }, + "sort_dir": { + "type": "string", + "description": "Направление сортировки:\n- `asc` — по возрастанию,\n- `desc` — по убыванию.\n" + } + } + }, + "productGetProductAttributesV3ResponseDictionaryValue": { + "properties": { + "dictionary_value_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики в словаре." + }, + "value": { + "type": "string", + "description": "Значение характеристики товара." + } + }, + "type": "object", + "title": "object" + }, + "productGetProductAttributesV4ResponseAttribute": { + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики." + }, + "complex_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики, которая поддерживает вложенные свойства. Например, у характеристики «Процессор» есть вложенные характеристики «Производитель» и «L2 Cache». У каждой из вложенных характеристик может быть несколько вариантов значений." + }, + "values": { + "items": { + "$ref": "#/components/schemas/productGetProductAttributesV3ResponseDictionaryValue" + }, + "type": "array", + "description": "Массив значений характеристик." + } + }, + "type": "object", + "title": "object" + }, + "GetProductAttributesV3ResponseDictionaryValue": { + "properties": { + "dictionaryValueId": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики в словаре." + }, + "value": { + "type": "string", + "description": "Значение характеристики товара." + } + }, + "type": "object", + "title": "object" + }, + "GetProductAttributesV4ResponseAttribute": { + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики." + }, + "complex_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор характеристики, которая поддерживает вложенные свойства. Например, у характеристики «Процессор» есть вложенные характеристики «Производитель» и «L2 Cache». У каждой из вложенных характеристик может быть несколько вариантов значений." + }, + "values": { + "items": { + "$ref": "#/components/schemas/GetProductAttributesV3ResponseDictionaryValue" + }, + "type": "array", + "description": "Массив значений характеристик." + } + }, + "type": "object", + "title": "object" + }, + "GetProductAttributesResponseImage": { + "properties": { + "default": { + "type": "boolean", + "description": "`true`, если изображение главное и отображается первым на карточке товара.\n" + }, + "file_name": { + "type": "string", + "description": null + }, + "index": { + "format": "int64", + "type": "integer", + "description": null + } + }, + "type": "object", + "title": "object" + }, + "v4GetProductAttributesResponseModelInfo": { + "properties": { + "model_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор модели." + }, + "count": { + "format": "int64", + "type": "integer", + "description": "Количество объединённых товаров модели." + } + }, + "description": "Информация о модели.", + "type": "object", + "title": "object" + }, + "v4GetProductAttributesResponsePdf": { + "properties": { + "file_name": { + "type": "string", + "description": "Путь к PDF-файлу." + }, + "name": { + "type": "string", + "description": "Название файла." + } + }, + "type": "object", + "title": "object" + }, + "productv4GetProductAttributesV4ResponseResult": { + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/productGetProductAttributesV4ResponseAttribute" + }, + "type": "array", + "description": "Список характеристик товара." + }, + "attributes_with_defaults": { + "type": "array", + "items": { + "format": "int64", + "type": "integer" + }, + "description": "Список идентификаторов характеристик со значением по умолчанию." + }, + "barcode": { + "type": "string", + "description": "Штрихкод." + }, + "barcodes": { + "type": "array of strings", + "description": "Все штрихкоды товара." + }, + "description_category_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор категории.\nИспользуйте его с методами [/v1/description-category/attribute](#operation/DescriptionCategoryAPI_GetAttributes) и [/v1/description-category/attribute/values](#operation/DescriptionCategoryAPI_GetAttributeValues).\n" + }, + "color_image": { + "type": "string", + "description": "Маркетинговый цвет." + }, + "complex_attributes": { + "items": { + "$ref": "#/components/schemas/GetProductAttributesV4ResponseAttribute" + }, + "type": "array", + "description": "Массив вложенных характеристик." + }, + "depth": { + "format": "int64", + "type": "integer", + "description": "Глубина." + }, + "dimension_unit": { + "type": "string", + "description": "Единица измерения габаритов:\n - `mm` — миллиметры,\n - `cm` — сантиметры,\n - `in` — дюймы.\n" + }, + "height": { + "format": "int64", + "type": "integer", + "description": "Высота упаковки." + }, + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "images": { + "items": { + "$ref": "#/components/schemas/GetProductAttributesResponseImage" + }, + "type": "array of strings", + "description": "Массив ссылок на изображения товара. Порядок изображений аналогичен порядку в карточке товаров." + }, + "model_info": { + "$ref": "#/components/schemas/v4GetProductAttributesResponseModelInfo" + }, + "name": { + "type": "string", + "maxLength": 500, + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "pdf_list": { + "items": { + "$ref": "#/components/schemas/v4GetProductAttributesResponsePdf" + }, + "type": "array", + "description": "Массив PDF-файлов." + }, + "primary_image": { + "type": "string", + "description": "Ссылка на главное изображение товара." + }, + "sku": { + "type": "string", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "type_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор типа товара." + }, + "weight": { + "format": "int64", + "type": "integer", + "description": "Вес товара в упаковке." + }, + "weight_unit": { + "type": "string", + "description": "Единица измерения веса." + }, + "width": { + "format": "int64", + "type": "integer", + "description": "Ширина упаковки." + } + }, + "type": "object", + "title": "object" + }, + "productv4GetProductAttributesV4Response": { + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/productv4GetProductAttributesV4ResponseResult" + }, + "type": "array", + "description": "Результаты запроса." + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице.\n\nЧтобы получить следующие значения, укажите полученное значение в следующем запросе в параметре `last_id`.\n" + }, + "total": { + "description": "Количество товаров в списке.", + "type": "string", + "format": "int64" + } + }, + "type": "object", + "title": "object" + }, + "productGetProductInfoDescriptionRequest": { + "oneOf": [ + { + "title": "offer_id", + "required": [ + "offer_id" + ] + }, + { + "title": "product_id", + "required": [ + "product_id" + ] + } + ], + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + }, + "type": "object", + "title": "object" + }, + "productGetProductInfoDescriptionResponseProduct": { + "properties": { + "description": { + "type": "string", + "description": "Описание." + }, + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор." + }, + "name": { + "type": "string", + "description": "Название." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + } + }, + "type": "object", + "title": "object" + }, + "productGetProductInfoDescriptionResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/productGetProductInfoDescriptionResponseProduct" + } + }, + "type": "object", + "title": "object" + }, + "v1Empty": { + "type": "object", + "title": "object" + }, + "GetUploadQuotaResponseDailyCreate": { + "type": "object", + "title": "object", + "description": "Суточный лимит на создание товаров.", + "properties": { + "limit": { + "type": "integer", + "format": "int64", + "description": "Сколько всего товаров можно создать в сутки." + }, + "reset_at": { + "type": "string", + "format": "date-time", + "description": "Время в формате UTC, когда сбросится значение счётчика за текущие сутки." + }, + "usage": { + "type": "integer", + "format": "int64", + "description": "Сколько товаров создано за текущие сутки." + } + } + }, + "GetUploadQuotaResponseDailyUpdate": { + "type": "object", + "title": "object", + "description": "Суточный лимит на обновление товаров.", + "properties": { + "limit": { + "type": "integer", + "format": "int64", + "description": "Сколько всего товаров можно обновить в сутки." + }, + "reset_at": { + "type": "string", + "format": "date-time", + "description": "Время в формате UTC, когда сбросится значение счётчика за текущие сутки." + }, + "usage": { + "type": "integer", + "format": "int64", + "description": "Сколько товаров обновлено за текущие сутки." + } + } + }, + "GetUploadQuotaResponseTotal": { + "type": "object", + "title": "object", + "description": "Лимит на ассортимент.", + "properties": { + "limit": { + "type": "integer", + "format": "int64", + "description": "Сколько всего товаров можно создать в личном кабинете." + }, + "usage": { + "type": "integer", + "format": "int64", + "description": "Сколько товаров уже создано." + } + } + }, + "v4GetUploadQuotaResponse": { + "type": "object", + "title": "object", + "properties": { + "daily_create": { + "$ref": "#/components/schemas/GetUploadQuotaResponseDailyCreate" + }, + "daily_update": { + "$ref": "#/components/schemas/GetUploadQuotaResponseDailyUpdate" + }, + "total": { + "$ref": "#/components/schemas/GetUploadQuotaResponseTotal" + } + } + }, + "ProductUpdateOfferIdRequestUpdateOfferId": { + "required": [ + "new_offer_id", + "offer_id" + ], + "type": "object", + "title": "object", + "properties": { + "new_offer_id": { + "type": "string", + "description": "Новый артикул.\n\nМаксимальная длина строки — 50 символов.\n" + }, + "offer_id": { + "type": "string", + "description": "Старый артикул." + } + } + }, + "v1ProductUpdateOfferIdRequest": { + "required": [ + "update_offer_id" + ], + "type": "object", + "title": "object", + "properties": { + "update_offer_id": { + "description": "Список пар с новыми и старыми значениями артикулов.", + "items": { + "$ref": "#/components/schemas/ProductUpdateOfferIdRequestUpdateOfferId" + } + } + } + }, + "v1ProductUpdateOfferIdResponseError": { + "type": "object", + "title": "object", + "properties": { + "message": { + "type": "string", + "description": "Сообщение об ошибке." + }, + "offer_id": { + "type": "string", + "description": "Артикул товара, который не получилось изменить." + } + } + }, + "v1ProductUpdateOfferIdResponse": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "description": "Список ошибок.", + "items": { + "$ref": "#/components/schemas/v1ProductUpdateOfferIdResponseError" + } + } + } + }, + "productProductArchiveRequest": { + "required": [ + "product_id" + ], + "properties": { + "product_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Список идентификаторов товаров в системе продавца — `product_id`. Вы можете передать до 100 идентификаторов за раз." + } + }, + "type": "object", + "title": "object" + }, + "productBooleanResponse": { + "properties": { + "result": { + "type": "boolean", + "description": "Результат обработки запроса. `true`, если запрос выполнен без ошибок." + } + }, + "type": "object", + "title": "object" + }, + "productProductUnarchiveRequest": { + "required": [ + "product_id" + ], + "properties": { + "product_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Список идентификаторов товаров в системе продавца — `product_id`. Вы можете передать до 100 идентификаторов за раз. \n\nВ сутки можно восстановить из архива не больше 10 товаров, которые были архивированы автоматически. \nЛимит обновляется в 03:00 по московскому времени.\nНа разархивацию товаров, перенесённых в архив вручную, ограничений нет.\n" + } + }, + "type": "object", + "title": "object" + }, + "DeleteProductsRequestProduct": { + "required": [ + "offer_id" + ], + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + } + }, + "type": "object", + "title": "object" + }, + "productv2DeleteProductsRequest": { + "required": [ + "products" + ], + "properties": { + "products": { + "items": { + "$ref": "#/components/schemas/DeleteProductsRequestProduct" + }, + "type": "array", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + }, + "type": "object", + "title": "object" + }, + "DeleteProductsResponseDeleteStatus": { + "properties": { + "error": { + "type": "string", + "description": "Причина ошибки, которая возникла при обработке запроса." + }, + "is_deleted": { + "type": "boolean", + "description": "Если запрос выполнен без ошибок и товары удалены — `true`." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + } + }, + "type": "object", + "title": "object" + }, + "productv2DeleteProductsResponse": { + "properties": { + "status": { + "items": { + "$ref": "#/components/schemas/DeleteProductsResponseDeleteStatus" + }, + "type": "array", + "description": "Статус обработки запроса." + } + }, + "type": "object", + "title": "object" + }, + "v1GetProductInfoSubscriptionRequest": { + "required": [ + "skus" + ], + "type": "object", + "title": "object", + "properties": { + "skus": { + "description": "Список SKU, идентификаторов товара в системе Ozon.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1GetProductInfoSubscriptionResponseResult": { + "type": "object", + "title": "object", + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "Количество подписавшихся пользователей." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon, SKU." + } + } + }, + "v1GetProductInfoSubscriptionResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат работы метода.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GetProductInfoSubscriptionResponseResult" + } + } + } + }, + "v1ProductGetRelatedSKURequest": { + "required": [ + "sku" + ], + "type": "object", + "title": "object", + "properties": { + "sku": { + "description": "Список SKU.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1ProductGetRelatedSKUResponseItem": { + "type": "object", + "title": "object", + "properties": { + "availability": { + "type": "string", + "description": "Признак доступности товара по SKU:\n- `HIDDEN` — скрыт;\n- `AVAILABLE` — доступен;\n- `UNAVAILABLE` — недоступен, SKU удалён.\n" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время удаления." + }, + "delivery_schema": { + "type": "string", + "description": "Схема доставки:\n- `SDS` - идентификатор единого Ozon SKU;\n- `FBO` - идентификатор товара, который продаётся со склада Ozon;\n- `FBS` - идентификатор товара, который продаётся со склада FBS;\n- `Crossborder` - идентификатор товара, который продаётся из-за границы.\n" + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v1ProductGetRelatedSKUResponseError": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "sku": { + "type": "integer", + "description": "SKU, в котором произошла ошибка." + }, + "message": { + "type": "string", + "description": "Текст ошибки." + } + } + }, + "v1ProductGetRelatedSKUResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "description": "Информация о связанных SKU.", + "items": { + "$ref": "#/components/schemas/v1ProductGetRelatedSKUResponseItem" + } + }, + "errors": { + "description": "Ошибки.", + "items": { + "$ref": "#/components/schemas/v1ProductGetRelatedSKUResponseError" + } + } + } + }, + "v2ProductInfoPicturesRequest": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "description": "Список идентификаторов товаров в системе продавца — `product_id`.", + "maxItems": 1000, + "items": { + "type": "string", + "format": "int64" + } + } + }, + "required": [ + "product_id" + ] + }, + "v2ProductInfoPicturesResponseError": { + "type": "object", + "title": "object", + "properties": { + "message": { + "type": "string", + "description": "Описание ошибки." + }, + "url": { + "type": "string", + "description": "Ссылка на изображение." + } + } + }, + "v2ProductInfoPicturesResponseItem": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "primary_photo": { + "type": "array", + "description": "Ссылка на главное изображение.", + "items": { + "type": "string" + } + }, + "photo": { + "type": "array", + "description": "Ссылки на фотографии товара.", + "items": { + "type": "string" + } + }, + "color_photo": { + "type": "array", + "description": "Ссылки на загруженные образцы цвета.", + "items": { + "type": "string" + } + }, + "photo_360": { + "type": "array", + "description": "Ссылки на изображения 360.", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "description": "Список ошибок по изображениям товара.", + "items": { + "$ref": "#/components/schemas/v2ProductInfoPicturesResponseError" + } + } + } + }, + "v2ProductInfoPicturesResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "description": "Изображения товаров.", + "items": { + "$ref": "#/components/schemas/v2ProductInfoPicturesResponseItem" + } + } + } + }, + "v1Barcode": { + "required": [ + "barcode", + "sku" + ], + "type": "object", + "title": "object", + "properties": { + "barcode": { + "type": "string", + "description": "Значение штрихкода. Не больше 100 символов." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v1AddBarcodeRequest": { + "required": [ + "barcodes" + ], + "type": "object", + "title": "object", + "properties": { + "barcodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1Barcode" + }, + "description": "Список штрихкодов и товаров." + } + } + }, + "v1AddBarcodeResult": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "error": { + "type": "string", + "description": "Описание ошибки." + }, + "barcode": { + "type": "string", + "description": "Штрихкод, который не удалось привязать." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара, к которому не удалось привязать штрихкод." + } + } + }, + "v1AddBarcodeResponse": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1AddBarcodeResult" + }, + "description": "Список ошибок." + } + } + }, + "v1GenerateBarcodeRequest": { + "required": [ + "product_ids" + ], + "type": "object", + "title": "object", + "properties": { + "product_ids": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Идентификаторы товаров, для которых нужно создать штрихкод." + } + } + }, + "v1GenerateBarcodeResult": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "error": { + "type": "string", + "description": "Описание ошибки." + }, + "barcode": { + "type": "string", + "description": "Штрихкод, при создании которого произошла ошибка." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара, для которого не удалось создать штрихкод." + } + } + }, + "v1GenerateBarcodeResponse": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GenerateBarcodeResult" + }, + "description": "Ошибки при создании штрихкода." + } + } + }, + "productv2ProductsStocksRequestStock": { + "required": [ + "product_id", + "quant_size", + "stock", + "warehouse_id" + ], + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "stock": { + "format": "int64", + "type": "integer", + "description": "Количество товара в наличии без учёта зарезервированных товаров." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада, полученный из метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList)." + } + }, + "type": "object", + "title": "object" + }, + "productv2ProductsStocksRequest": { + "required": [ + "stocks" + ], + "properties": { + "stocks": { + "items": { + "$ref": "#/components/schemas/productv2ProductsStocksRequestStock" + }, + "type": "array", + "description": "Информация о товарах на складах." + } + }, + "type": "object", + "title": "object" + }, + "productv2ProductsStocksResponseError": { + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "message": { + "type": "string", + "description": "Причина ошибки." + } + }, + "type": "object", + "title": "object" + }, + "productv2ProductsStocksResponseResult": { + "properties": { + "errors": { + "items": { + "$ref": "#/components/schemas/productv2ProductsStocksResponseError" + }, + "type": "array", + "description": "Массив ошибок, которые возникли при обработке запроса." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "updated": { + "type": "boolean", + "description": "Если запрос выполнен успешно и остатки обновлены — `true`." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + } + }, + "type": "object", + "title": "object" + }, + "productv2ProductsStocksResponse": { + "description": "Результаты запроса.", + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/productv2ProductsStocksResponseResult" + }, + "type": "array" + } + }, + "type": "object", + "title": "object" + }, + "v4Visibility": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "VISIBLE", + "INVISIBLE", + "EMPTY_STOCK", + "NOT_MODERATED", + "MODERATED", + "DISABLED", + "STATE_FAILED", + "READY_TO_SUPPLY", + "VALIDATION_STATE_PENDING", + "VALIDATION_STATE_FAIL", + "VALIDATION_STATE_SUCCESS", + "TO_SUPPLY", + "IN_SALE", + "REMOVED_FROM_SALE", + "BANNED", + "OVERPRICED", + "CRITICALLY_OVERPRICED", + "EMPTY_BARCODE", + "BARCODE_EXISTS", + "QUARANTINE", + "ARCHIVED", + "OVERPRICED_WITH_STOCK", + "PARTIAL_APPROVED" + ], + "description": "Фильтр по видимости товара:\n - `ALL` — все товары.\n - `VISIBLE` — товары, которые видны покупателям.\n - `INVISIBLE` — товары, которые не видны покупателям.\n - `EMPTY_STOCK` — товары, у которых не указано наличие.\n - `NOT_MODERATED` — товары, которые не прошли модерацию.\n - `MODERATED` — товары, которые прошли модерацию.\n - `DISABLED` — товары, которые видны покупателям, но недоступны к покупке.\n - `STATE_FAILED` — товары, создание которых завершилось ошибкой.\n - `READY_TO_SUPPLY` — товары, готовые к поставке.\n - `VALIDATION_STATE_PENDING` — товары, которые проходят проверку валидатором на премодерации.\n - `VALIDATION_STATE_FAIL` — товары, которые не прошли проверку валидатором на премодерации.\n - `VALIDATION_STATE_SUCCESS` — товары, которые прошли проверку валидатором на премодерации.\n - `TO_SUPPLY` — товары, готовые к продаже.\n - `IN_SALE` — товары в продаже.\n - `REMOVED_FROM_SALE` — товары, скрытые от покупателей.\n - `BANNED` — заблокированные товары.\n - `OVERPRICED` — товары с завышенной ценой.\n - `CRITICALLY_OVERPRICED` — товары со слишком завышенной ценой.\n - `EMPTY_BARCODE` — товары без штрихкода.\n - `BARCODE_EXISTS` — товары со штрихкодом.\n - `QUARANTINE` — товары на карантине после изменения цены более чем на 50%.\n - `ARCHIVED` — товары в архиве.\n - `OVERPRICED_WITH_STOCK` — товары в продаже со стоимостью выше, чем у конкурентов.\n - `PARTIAL_APPROVED` — товары в продаже с пустым или неполным описанием.\n" + }, + "FilterWithQuant": { + "type": "object", + "description": "Товары по тарифу «Эконом».", + "properties": { + "created": { + "description": "Активные эконом-товары.", + "type": "boolean" + }, + "exists": { + "description": "Эконом-товары во всех статусах.", + "type": "boolean" + } + } + }, + "v4GetProductInfoStocksRequestFilter": { + "type": "object", + "description": "Фильтр по товарам.", + "properties": { + "offer_id": { + "description": "Фильтр по параметру `offer_id`. Можно передавать список значений.", + "type": "array", + "items": { + "type": "string" + } + }, + "product_id": { + "description": "Фильтр по параметру `product_id`. Можно передавать список значений.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "visibility": { + "$ref": "#/components/schemas/v4Visibility" + }, + "with_quant": { + "$ref": "#/components/schemas/FilterWithQuant" + } + } + }, + "v4GetProductInfoStocksRequest": { + "required": [ + "limit", + "filter" + ], + "type": "object", + "properties": { + "cursor": { + "description": "Указатель для выборки следующих данных.", + "type": "string" + }, + "filter": { + "$ref": "#/components/schemas/v4GetProductInfoStocksRequestFilter" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Количество значений на странице. Минимум — 1, максимум — 1000." + } + } + }, + "StockShipmentType": { + "type": "string", + "default": "SHIPMENT_TYPE_GENERAL", + "enum": [ + "SHIPMENT_TYPE_GENERAL", + "SHIPMENT_TYPE_BOX", + "SHIPMENT_TYPE_PALLET" + ], + "description": "Тип упаковки:\n- `SHIPMENT_TYPE_GENERAL` — обычный товар;\n- `SHIPMENT_TYPE_BOX` — коробка;\n- `SHIPMENT_TYPE_PALLET` — палета.\n" + }, + "GetProductInfoStocksResponseStock": { + "type": "object", + "properties": { + "present": { + "description": "Сейчас на складе.", + "type": "integer", + "format": "int32" + }, + "reserved": { + "description": "Зарезервировано.", + "type": "integer", + "format": "int32" + }, + "shipment_type": { + "$ref": "#/components/schemas/StockShipmentType" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + }, + "type": { + "description": "Тип склада.", + "type": "string" + }, + "warehouse_ids": { + "type": "array", + "description": "Идентификаторы складов, на которых хранился или хранится товар.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v4GetProductInfoStocksResponseItem": { + "type": "object", + "properties": { + "offer_id": { + "description": "Идентификатор товара в системе продавца — артикул.", + "type": "string" + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — `product_id`.", + "type": "integer", + "format": "int64" + }, + "stocks": { + "description": "Информация об остатках.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetProductInfoStocksResponseStock" + } + } + } + }, + "v4GetProductInfoStocksResponse": { + "type": "object", + "properties": { + "cursor": { + "description": "Указатель для выборки следующих данных.", + "type": "string" + }, + "items": { + "description": "Информация о товарах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v4GetProductInfoStocksResponseItem" + } + }, + "total": { + "description": "Количество уникальных товаров, для которых выводится информация об остатках.", + "type": "integer", + "format": "int32" + } + } + }, + "productsv1GetProductInfoStocksByWarehouseFbsRequest": { + "required": [ + "sku" + ], + "type": "object", + "title": "object", + "properties": { + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "productsv1GetProductInfoStocksByWarehouseFbsResponseResult": { + "type": "object", + "title": "object", + "properties": { + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + }, + "present": { + "description": "Общее количество товара на складе.", + "type": "integer", + "format": "int64" + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — артикул.", + "type": "integer", + "format": "int64" + }, + "reserved": { + "description": "Количество зарезервированных товаров на складе.", + "type": "integer", + "format": "int64" + }, + "warehouse_id": { + "description": "Идентификатор склада.", + "type": "integer", + "format": "int64" + }, + "warehouse_name": { + "description": "Название склада.", + "type": "string" + } + } + }, + "productsv1GetProductInfoStocksByWarehouseFbsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат работы метода.", + "items": { + "$ref": "#/components/schemas/productsv1GetProductInfoStocksByWarehouseFbsResponseResult" + } + } + } + }, + "productImportProductsPricesRequestPrice": { + "properties": { + "auto_action_enabled": { + "type": "string", + "description": "Атрибут для включения и выключения автоматического применения к товару доступных акций Ozon:\n- `ENABLED` — включить;\n- `DISABLED` — выключить;\n- `UNKNOWN` — ничего не менять, передаётся по умолчанию.\n\nНапример, если ранее вы включили автодобавление и не хотите выключать его, передавайте `UNKNOWN`.\n\nЕсли вы передаёте `ENABLED` в этом параметре, установите значение минимальной цены в параметре `min_price`. Цена не опустится ниже минимальной.\n", + "default": "UNKNOWN", + "enum": [ + "UNKNOWN", + "ENABLED", + "DISABLED" + ] + }, + "auto_add_to_ozon_actions_list_enabled": { + "type": "string", + "description": "Атрибут для включения и выключения автодобавления товара в акции:\n- `ENABLED` — включить;\n- `DISABLED` — выключить;\n- `UNKNOWN` — ничего не менять, передаётся по умолчанию.\n\nНапример, если ранее вы включили автодобавление товара в акции и не хотите выключать его, передавайте `UNKNOWN`.\n", + "default": "UNKNOWN", + "enum": [ + "UNKNOWN", + "ENABLED", + "DISABLED" + ] + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Переданное значение должно совпадать с валютой, которая установлена в настройках личного кабинета. По умолчанию передаётся `RUB` — российский рубль.\n\nНапример, если у вас установлена валюта взаиморасчётов юань, передавайте значение `CNY`, иначе вернётся ошибка.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "min_price": { + "type": "string", + "description": "Минимальная цена товара после применения акций." + }, + "min_price_for_auto_actions_enabled": { + "type": "boolean", + "description": "`true`, если Ozon учитывает минимальную цену при добавлении в акции. Если ничего не передать, изменений в статусе учёта цены не будет.\n" + }, + "net_price": { + "type": "string", + "description": "Себестоимость товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "old_price": { + "type": "string", + "description": "Цена до скидок (зачеркнута на карточке товара). Указывается в рублях. Разделитель дробной части — точка, до двух знаков после точки.\n\nЕсли на товар нет скидок, укажите значение `0` в этом поле, а текущую цену передайте в поле `price`.\n" + }, + "price": { + "type": "string", + "description": "Цена товара с учётом скидок, отображается на карточке товара.\n\nЕсли значение параметра `old_price` больше 0, между `price` и `old_price` должна быть определённая разница.\nОна зависит от значения `price`.\n\n| Значение `price` | Минимальная разница |\n|---|---|\n| < 400 | 20 рублей |\n| 400–10 000 | 5% |\n| > 10 000 | 500 рублей |\n" + }, + "price_strategy_enabled": { + "type": "string", + "description": "Атрибут для автоприменения стратегий цены:\n- `ENABLED` — включить;\n- `DISABLED` — выключить;\n- `UNKNOWN` — ничего не менять, передаётся по умолчанию.\n\nЕсли ранее вы включили автоприменение стратегий цены и не хотите выключать его, передавайте `UNKNOWN` в следующих запросах.\n\nЕсли вы передаёте `ENABLED` в этом параметре, установите значение минимальной цены в параметре `min_price`.\n\nЕсли вы передаёте `DISABLED` в этом параметре, товар удаляется из стратегии.\n", + "default": "UNKNOWN", + "enum": [ + "UNKNOWN", + "ENABLED", + "DISABLED" + ] + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "quant_size": { + "type": "integer", + "format": "int64", + "description": "Используйте параметр, если у обычного и эконом-товара совпадает артикул — `offer_id = quant_id`. Чтобы обновить цену:\n- обычного товара — передайте значение `1`;\n- эконом-товара — передайте размер его кванта.\n\nЕсли у обычного и эконом-товара разные артикулы, не передавайте параметр.\n" + }, + "vat": { + "type": "string", + "description": "Ставка НДС для товара:\n - `0` — не облагается НДС,\n - `0.05` — 5%,\n - `0.07` — 7%,\n - `0.1` — 10%,\n - `0.2` — 20%.\n\nПередавайте значение ставки, актуальное на данный момент.\n" + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsPricesRequest": { + "properties": { + "prices": { + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/productImportProductsPricesRequestPrice" + }, + "type": "array", + "description": "Информация о ценах товаров." + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsPricesResponseError": { + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "message": { + "type": "string", + "description": "Причина ошибки." + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsPricesResponseProcessResult": { + "properties": { + "errors": { + "items": { + "$ref": "#/components/schemas/productImportProductsPricesResponseError" + }, + "type": "array", + "description": "Массив ошибок, которые возникли при обработке запроса." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "updated": { + "type": "boolean", + "description": "Если информации о товаре успешно обновлена — `true`." + } + }, + "type": "object", + "title": "object" + }, + "productImportProductsPricesResponse": { + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/productImportProductsPricesResponseProcessResult" + }, + "type": "array", + "description": "Результаты запроса." + } + }, + "type": "object", + "title": "object" + }, + "productv5GetProductListRequestFilterFilterVisibility": { + "default": "ALL", + "enum": [ + "ALL", + "VISIBLE", + "INVISIBLE", + "EMPTY_STOCK", + "NOT_MODERATED", + "MODERATED", + "DISABLED", + "STATE_FAILED", + "READY_TO_SUPPLY", + "VALIDATION_STATE_PENDING", + "VALIDATION_STATE_FAIL", + "VALIDATION_STATE_SUCCESS", + "TO_SUPPLY", + "IN_SALE", + "REMOVED_FROM_SALE", + "OVERPRICED", + "CRITICALLY_OVERPRICED", + "EMPTY_BARCODE", + "BARCODE_EXISTS", + "QUARANTINE", + "ARCHIVED", + "OVERPRICED_WITH_STOCK", + "PARTIAL_APPROVED" + ], + "type": "string", + "title": "string", + "description": "Фильтр по видимости товара:\n - `ALL` — все товары.\n - `VISIBLE` — товары, которые видны покупателям.\n - `INVISIBLE` — товары, которые не видны покупателям.\n - `EMPTY_STOCK` — товары, у которых не указано наличие.\n - `NOT_MODERATED` — товары, которые не прошли модерацию.\n - `MODERATED` — товары, которые прошли модерацию.\n - `DISABLED` — товары, которые видны покупателям, но недоступны к покупке.\n - `STATE_FAILED` — товары, создание которых завершилось ошибкой.\n - `READY_TO_SUPPLY` — товары, готовые к поставке.\n - `VALIDATION_STATE_PENDING` — товары, которые проходят проверку валидатором на премодерации.\n - `VALIDATION_STATE_FAIL` — товары, которые не прошли проверку валидатором на премодерации.\n - `VALIDATION_STATE_SUCCESS` — товары, которые прошли проверку валидатором на премодерации.\n - `TO_SUPPLY` — товары, готовые к продаже.\n - `IN_SALE` — товары в продаже.\n - `REMOVED_FROM_SALE` — товары, скрытые от покупателей.\n - `OVERPRICED` — товары с завышенной ценой.\n - `CRITICALLY_OVERPRICED` — товары со слишком завышенной ценой.\n - `EMPTY_BARCODE` — товары без штрихкода.\n - `BARCODE_EXISTS` — товары со штрихкодом.\n - `QUARANTINE` — товары на карантине после изменения цены более чем на 50%.\n - `ARCHIVED` — товары в архиве.\n - `OVERPRICED_WITH_STOCK` — товары в продаже со стоимостью выше, чем у конкурентов.\n - `PARTIAL_APPROVED` — товары в продаже с пустым или неполным описанием.\n" + }, + "productv5Filter": { + "type": "object", + "title": "object", + "description": "Фильтр по товарам.", + "properties": { + "offer_id": { + "description": "Фильтр по параметру `offer_id`. Можно передавать до 1000 значений.", + "items": { + "type": "string" + } + }, + "product_id": { + "description": "Фильтр по параметру `product_id`. Можно передавать до 1000 значений.", + "items": { + "type": "string", + "format": "int64" + } + }, + "visibility": { + "$ref": "#/components/schemas/productv5GetProductListRequestFilterFilterVisibility" + } + } + }, + "productv5GetProductInfoPricesV5Request": { + "required": [ + "limit", + "filter" + ], + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "filter": { + "$ref": "#/components/schemas/productv5Filter" + }, + "limit": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "description": "Количество значений на странице." + } + } + }, + "ItemCommissionsv5": { + "type": "object", + "title": "object", + "description": "Информация о комиссиях.", + "properties": { + "fbo_deliv_to_customer_amount": { + "format": "double", + "type": "number", + "description": "Последняя миля (FBO)." + }, + "fbo_direct_flow_trans_max_amount": { + "format": "double", + "type": "number", + "description": "Магистраль до (FBO)." + }, + "fbo_direct_flow_trans_min_amount": { + "format": "double", + "type": "number", + "description": "Магистраль от (FBO)." + }, + "fbo_return_flow_amount": { + "format": "double", + "type": "number", + "description": "Комиссия за возврат и отмену (FBO)." + }, + "fbs_deliv_to_customer_amount": { + "format": "double", + "type": "number", + "description": "Последняя миля (FBS)." + }, + "fbs_direct_flow_trans_max_amount": { + "format": "double", + "type": "number", + "description": "Магистраль до (FBS)." + }, + "fbs_direct_flow_trans_min_amount": { + "format": "double", + "type": "number", + "description": "Магистраль от (FBS)." + }, + "fbs_first_mile_max_amount": { + "format": "double", + "type": "number", + "description": "Максимальная комиссия за обработку отправления (FBS).\n\n[Подробнее о тарифах в Базе знаний продавца](https://seller-edu.ozon.ru/commissions-tariffs/commissions-tariffs-ozon/rashody-na-dop-uslugi#выезд-транспортного-средства-по-адресу-продавца-для-забора-отправлении-(pick-up))\n" + }, + "fbs_first_mile_min_amount": { + "format": "double", + "type": "number", + "description": "Минимальная комиссия за обработку отправления (FBS).\n\n[Подробнее о тарифах в Базе знаний продавца](https://seller-edu.ozon.ru/commissions-tariffs/commissions-tariffs-ozon/rashody-na-dop-uslugi#выезд-транспортного-средства-по-адресу-продавца-для-забора-отправлении-(pick-up))\n" + }, + "fbs_return_flow_amount": { + "format": "double", + "type": "number", + "description": "Комиссия за возврат и отмену, обработка отправления (FBS)." + }, + "sales_percent_fbo": { + "format": "double", + "type": "number", + "description": "Процент комиссии за продажу (FBO)." + }, + "sales_percent_fbs": { + "format": "double", + "type": "number", + "description": "Процент комиссии за продажу (FBS)." + } + } + }, + "MarketingAction": { + "properties": { + "date_from": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала акции продавца." + }, + "date_to": { + "format": "date-time", + "type": "string", + "description": "Дата и время окончания акции продавца." + }, + "title": { + "type": "string", + "description": "Название акции продавца." + }, + "value": { + "type": "string", + "description": "Скидка по акции продавца." + } + }, + "type": "object", + "title": "object" + }, + "ItemMarketing": { + "properties": { + "actions": { + "items": { + "$ref": "#/components/schemas/MarketingAction" + }, + "type": "array", + "description": "Маркетинговые акции продавца. Параметры `date_from`, `date_to`, `title` и `value` указываются для каждой акции продавца." + }, + "current_period_from": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала текущего периода по всем действующим акциям." + }, + "current_period_to": { + "format": "date-time", + "type": "string", + "description": "Дата и время окончания текущего периода по всем действующим акциям." + }, + "ozon_actions_exist": { + "type": "boolean", + "description": "`true`, если к товару можно применить акцию за счёт Ozon.\n" + } + }, + "type": "object", + "title": "object", + "description": "Маркетинговые акции продавца." + }, + "ItemPricev5": { + "type": "object", + "title": "object", + "description": "Цена товара.", + "properties": { + "auto_action_enabled": { + "type": "boolean", + "description": "`true`, если автоприменение акций у товара включено.\n" + }, + "auto_add_to_ozon_actions_list_enabled": { + "type": "boolean", + "description": "`true`, если автодобавление товара в акции включено.\n" + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Совпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "marketing_price": { + "type": "number", + "format": "double", + "description": "Цена на товар с учётом всех акций, которая будет указана на витрине Ozon, без учёта скидки по Ozon Карте." + }, + "marketing_seller_price": { + "type": "number", + "format": "double", + "description": "Цена на товар с учётом акций продавца." + }, + "min_price": { + "type": "number", + "format": "double", + "description": "Минимальная цена товара после применения всех скидок." + }, + "net_price": { + "type": "number", + "format": "double", + "description": "Себестоимость товара." + }, + "old_price": { + "type": "number", + "format": "double", + "description": "Цена до учёта скидок. На карточке товара отображается зачёркнутой." + }, + "price": { + "type": "number", + "format": "double", + "description": "Цена товара с учётом скидок — это значение показывается на карточке товара." + }, + "retail_price": { + "type": "number", + "format": "double", + "description": "Цена поставщика." + }, + "vat": { + "type": "number", + "format": "double", + "description": "Ставка НДС для товара." + } + } + }, + "PriceIndexesIndexExternalData": { + "type": "object", + "title": "object", + "description": "Цена товара у конкурентов на других площадках.", + "properties": { + "min_price": { + "type": "string", + "description": "Минимальная цена товара у конкурентов на другой площадке." + }, + "min_price_currency": { + "type": "string", + "description": "Валюта цены." + }, + "price_index_value": { + "type": "number", + "format": "double", + "description": "Значение индекса цены." + } + } + }, + "PriceIndexesIndexOzonData": { + "type": "object", + "title": "object", + "description": "Цена товара у конкурентов на Ozon.", + "properties": { + "min_price": { + "type": "string", + "description": "Минимальная цена товара у конкурентов на Ozon." + }, + "min_price_currency": { + "type": "string", + "description": "Валюта цены." + }, + "price_index_value": { + "type": "number", + "format": "double", + "description": "Значение индекса цены." + } + } + }, + "PriceIndexesIndexSelfData": { + "type": "object", + "title": "object", + "description": "Цена вашего товара на других площадках.", + "properties": { + "min_price": { + "type": "string", + "description": "Минимальная цена вашего товара на других площадках." + }, + "min_price_currency": { + "type": "string", + "description": "Валюта цены." + }, + "price_index_value": { + "type": "number", + "format": "double", + "description": "Значение индекса цены." + } + } + }, + "GetProductInfoPricesResponseItemPriceIndexes": { + "type": "object", + "title": "object", + "description": "Индексы цены товара.\n\n[Подробнее об индексе цен в Базе знаний продавца](https://seller-edu.ozon.ru/seller-rating/metrics/price-index)\n", + "properties": { + "color_index": { + "description": "Итоговый индекс цены товара:\n- `WITHOUT_INDEX` — нет индекса, \n- `GREEN` — выгодный,\n- `YELLOW` — умеренный, \n- `RED` — невыгодный.\n", + "type": "string", + "enum": [ + "WITHOUT_INDEX", + "GREEN", + "YELLOW", + "RED" + ], + "default": "WITHOUT_INDEX" + }, + "external_index_data": { + "$ref": "#/components/schemas/PriceIndexesIndexExternalData" + }, + "ozon_index_data": { + "$ref": "#/components/schemas/PriceIndexesIndexOzonData" + }, + "self_marketplaces_index_data": { + "$ref": "#/components/schemas/PriceIndexesIndexSelfData" + } + } + }, + "productGetProductInfoPricesV5ResponseItem": { + "type": "object", + "title": "object", + "properties": { + "acquiring": { + "type": "integer", + "format": "int32", + "description": "Максимальная комиссия за эквайринг.\n\n[Подробнее об эквайринге в Базе знаний продавца](https://seller-edu.ozon.ru/commissions-tariffs/commissions-tariffs-ozon/rashody-na-dop-uslugi#экваиринг)\n" + }, + "commissions": { + "$ref": "#/components/schemas/ItemCommissionsv5" + }, + "marketing_actions": { + "$ref": "#/components/schemas/ItemMarketing", + "description": "Маркетинговые акции продавца." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "price": { + "$ref": "#/components/schemas/ItemPricev5" + }, + "price_indexes": { + "$ref": "#/components/schemas/GetProductInfoPricesResponseItemPriceIndexes" + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "volume_weight": { + "type": "number", + "format": "double", + "description": "Объёмный вес товара." + } + } + }, + "productv5GetProductInfoPricesV5Response": { + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "items": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/productGetProductInfoPricesV5ResponseItem" + } + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Количество товаров в списке." + } + } + }, + "v1GetProductInfoDiscountedRequest": { + "required": [ + "discounted_skus" + ], + "type": "object", + "title": "object", + "properties": { + "discounted_skus": { + "description": "Список SKU уценённых товаров.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1GetProductInfoDiscountedResponseItem": { + "type": "object", + "title": "object", + "properties": { + "comment_reason_damaged": { + "type": "string", + "description": "Комментарий к причине повреждения." + }, + "condition": { + "type": "string", + "description": "Состояние товара — новый или Б/У." + }, + "condition_estimation": { + "type": "string", + "description": "Состояние товара по шкале от 1 до 7:\n- 1 — удовлетворительное,\n- 2 — хорошее,\n- 3 — очень хорошее,\n- 4 — отличное,\n- 5–7 — как новый.\n" + }, + "defects": { + "type": "string", + "description": "Дефекты товара." + }, + "discounted_sku": { + "type": "integer", + "format": "int64", + "description": "SKU уценённого товара." + }, + "mechanical_damage": { + "type": "string", + "description": "Описание механического повреждения." + }, + "package_damage": { + "type": "string", + "description": "Описание повреждения упаковки." + }, + "packaging_violation": { + "type": "string", + "description": "Признак нарушения целостности упаковки." + }, + "reason_damaged": { + "type": "string", + "description": "Причина повреждения." + }, + "repair": { + "type": "string", + "description": "Признак, что товар отремонтирован." + }, + "shortage": { + "type": "string", + "description": "Признак, что товар некомплектный." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "SKU основного товара." + }, + "warranty_type": { + "type": "string", + "description": "Наличие у товара действующей гарантии." + } + } + }, + "v1GetProductInfoDiscountedResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "description": "Информация об уценке и основном товаре.", + "items": { + "$ref": "#/components/schemas/v1GetProductInfoDiscountedResponseItem" + } + } + } + }, + "v1ProductUpdateDiscountRequest": { + "required": [ + "discount", + "product_id" + ], + "type": "object", + "title": "object", + "properties": { + "discount": { + "type": "integer", + "format": "int32", + "description": "Размер скидки: от 3 до 99 процентов.\n" + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "v1ProductUpdateDiscountResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "boolean", + "description": "Результат работы метода. `true`, если запрос выполнен без ошибок." + } + } + }, + "GetSellerActionsV1ResponseAction": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "number", + "format": "double", + "description": "Идентификатор акции." + }, + "title": { + "type": "string", + "description": "Название акции." + }, + "action_type": { + "type": "string", + "description": "Тип акции." + }, + "description": { + "type": "string", + "description": "Описание акции." + }, + "date_start": { + "type": "string", + "description": "Дата начала акции." + }, + "date_end": { + "type": "string", + "description": "Дата окончания акции." + }, + "freeze_date": { + "type": "string", + "description": "Дата приостановки акции.\n\nЕсли поле заполнено, продавец не может повышать цены, изменять список товаров и уменьшать количество единиц товаров в акции.\n\nПродавец может понижать цены и увеличивать количество единиц товара в акции.\n" + }, + "potential_products_count": { + "type": "number", + "format": "double", + "description": "Количество товаров, доступных для акции." + }, + "participating_products_count": { + "type": "number", + "format": "double", + "description": "Количество товаров, которые участвуют в акции." + }, + "is_participating": { + "type": "boolean", + "description": "Участвуете вы в этой акции или нет." + }, + "is_voucher_action": { + "type": "boolean", + "description": "Признак, что для участия в акции покупателям нужен промокод." + }, + "banned_products_count": { + "type": "number", + "format": "double", + "description": "Количество заблокированных товаров." + }, + "with_targeting": { + "type": "boolean", + "description": "Признак, что акция с целевой аудиторией." + }, + "order_amount": { + "type": "number", + "format": "double", + "description": "Сумма заказа." + }, + "discount_type": { + "type": "string", + "description": "Тип скидки." + }, + "discount_value": { + "type": "number", + "format": "double", + "description": "Размер скидки." + } + } + }, + "seller_apiGetSellerActionsV1Response": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetSellerActionsV1ResponseAction" + }, + "description": "Результаты запроса." + } + } + }, + "seller_apiGetSellerProductV1Request": { + "required": [ + "action_id", + "offset" + ], + "type": "object", + "title": "object", + "properties": { + "action_id": { + "type": "number", + "format": "double", + "description": "Идентификатор акции. Можно получить с помощью метода [/v1/actions](#operation/Promos)." + }, + "limit": { + "type": "number", + "format": "double", + "description": "Количество ответов на странице. По умолчанию — 100." + }, + "offset": { + "type": "number", + "format": "double", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset=10`, ответ начнётся с 11-го найденного элемента.", + "deprecated": true + }, + "last_id": { + "type": "number", + "format": "double", + "description": "Идентификатор последнего значения на странице. При первом запросе оставьте это поле пустым." + } + }, + "description": "Список товаров." + }, + "seller_apiProduct": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "number", + "format": "double", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "price": { + "type": "number", + "format": "double", + "description": "Текущая цена товара без скидки." + }, + "action_price": { + "type": "number", + "format": "double", + "description": "Цена товара по акции." + }, + "alert_max_action_price_failed": { + "type": "boolean", + "description": "`true`, если цена товара выше рекомендуемой. Товар отмечен красным и может быть исключён из акции.\n" + }, + "alert_max_action_price": { + "type": "number", + "format": "double", + "description": "Рекомендуемая цена товара по акции." + }, + "max_action_price": { + "type": "number", + "format": "double", + "description": "Максимально возможная цена товара по акции." + }, + "add_mode": { + "type": "string", + "description": "Тип добавления товара в акцию: автоматически или вручную продавцом.\n" + }, + "min_stock": { + "type": "number", + "format": "double", + "description": "Минимальное число единиц товара в акции типа «Скидка на сток»." + }, + "stock": { + "type": "number", + "format": "double", + "description": "Число единиц товара в акции типа «Скидка на сток»." + } + } + }, + "seller_apiGetSellerProductV1ResponseResult": { + "type": "object", + "title": "object", + "properties": { + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/seller_apiProduct" + }, + "description": "Список товаров." + }, + "total": { + "type": "number", + "format": "double", + "description": "Общее количество товаров, которое доступно для акции." + }, + "last_id": { + "type": "number", + "format": "double", + "description": "Идентификатор последнего значения на странице. Чтобы получить следующие значения, передайте полученное значение в следующем запросе в параметре `last_id`." + } + }, + "description": "Результаты запроса." + }, + "seller_apiGetSellerProductV1Response": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/seller_apiGetSellerProductV1ResponseResult" + } + } + }, + "seller_apiProductPrice": { + "required": [ + "product_id", + "action_price" + ], + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "number", + "format": "double", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "action_price": { + "type": "number", + "format": "double", + "description": "Цена товара по акции." + }, + "stock": { + "type": "number", + "format": "double", + "description": "Количество единиц товара в акции типа «Скидка на сток»." + } + } + }, + "seller_apiActivateProductV1Request": { + "required": [ + "action_id", + "products" + ], + "type": "object", + "title": "object", + "properties": { + "action_id": { + "type": "number", + "format": "double", + "description": "Идентификатор акции. Можно получить с помощью метода [/v1/actions](#operation/Promos)." + }, + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/seller_apiProductPrice" + }, + "description": "Список товаров." + } + } + }, + "seller_apiProductV1ResponseProduct": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "number", + "format": "double", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "reason": { + "type": "string", + "description": "Причина, почему товар не добавлен в акцию." + } + } + }, + "seller_apiProductV1ResponseResult": { + "type": "object", + "title": "object", + "properties": { + "product_ids": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "description": "Список идентификаторов товаров, которые добавлены в акцию." + }, + "rejected": { + "type": "array", + "items": { + "$ref": "#/components/schemas/seller_apiProductV1ResponseProduct" + }, + "description": "Список товаров, которые не удалось добавить в акцию." + } + }, + "description": "Результаты запроса." + }, + "seller_apiProductV1Response": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/seller_apiProductV1ResponseResult" + } + } + }, + "seller_apiProductIDsV1Request": { + "required": [ + "action_id", + "product_ids" + ], + "type": "object", + "title": "object", + "properties": { + "action_id": { + "type": "number", + "format": "double", + "description": "Идентификатор акции. Можно получить с помощью метода [/v1/actions](#operation/Promos)." + }, + "product_ids": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "description": "Список идентификаторов товаров в системе продавца — `product_id`." + } + } + }, + "seller_apiProductV1ResponseProductDeactivate": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "number", + "format": "double", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "reason": { + "type": "string", + "description": "Причина, почему товар не удалён из акции." + } + } + }, + "seller_apiProductV1ResponseResultDeactivate": { + "type": "object", + "title": "object", + "properties": { + "product_ids": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "description": "Список идентификаторов товаров, которые удалены из акции." + }, + "rejected": { + "type": "array", + "items": { + "$ref": "#/components/schemas/seller_apiProductV1ResponseProductDeactivate" + }, + "description": "Список товаров, которые не удалось удалить из акции." + } + }, + "description": "Результаты запроса." + }, + "seller_apiProductV1ResponseDeactivate": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/seller_apiProductV1ResponseResultDeactivate" + } + } + }, + "v1DiscountTaskStatus": { + "type": "string", + "default": "UNKNOWN", + "enum": [ + "NEW", + "SEEN", + "APPROVED", + "PARTLY_APPROVED", + "DECLINED", + "AUTO_DECLINED", + "DECLINED_BY_USER", + "COUPON", + "PURCHASED" + ], + "description": "Статус заявки на скидку:\n- `NEW` — новая,\n- `SEEN` — просмотренная,\n- `APPROVED` — одобренная,\n- `PARTLY_APPROVED` — одобренная частично,\n- `DECLINED` — отклонённая,\n- `AUTO_DECLINED` — отклонена автоматически,\n- `DECLINED_BY_USER` — отклонена покупателем,\n- `COUPON` — скидка по купону,\n- `PURCHASED` — купленная.\n" + }, + "v1GetDiscountTaskListRequest": { + "required": [ + "status", + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/v1DiscountTaskStatus" + }, + "page": { + "type": "integer", + "format": "uint64", + "description": "Страница, с которой нужно выгрузить список заявок на скидку." + }, + "limit": { + "type": "integer", + "format": "uint64", + "description": "Максимальное количество заявок на странице." + } + } + }, + "v1GetDiscountTaskListResponseTask": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор заявки." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания заявки." + }, + "end_at": { + "type": "string", + "format": "date-time", + "description": "Время окончания действия заявки." + }, + "edited_till": { + "type": "string", + "format": "date-time", + "description": "Время для изменения решения." + }, + "status": { + "type": "string", + "description": "Статус заявки." + }, + "customer_name": { + "type": "string", + "description": "Имя покупателя." + }, + "sku": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "user_comment": { + "type": "string", + "description": "Комментарий покупателя к заявке." + }, + "seller_comment": { + "type": "string", + "description": "Комментарий продавца к заявке." + }, + "requested_price": { + "type": "number", + "format": "double", + "description": "Цена по заявке." + }, + "approved_price": { + "type": "number", + "format": "double", + "description": "Одобренная цена." + }, + "original_price": { + "type": "number", + "format": "double", + "description": "Цена товара до всех скидок." + }, + "discount": { + "type": "number", + "format": "double", + "description": "Скидка в рублях." + }, + "discount_percent": { + "type": "number", + "format": "double", + "description": "Скидка в процентах." + }, + "base_price": { + "type": "number", + "format": "double", + "description": "Базовая цена, по которой товар продаётся на Ozon, если не участвует в акции." + }, + "min_auto_price": { + "type": "number", + "format": "double", + "description": "Минимальное значение цены после автоприменения скидок и акций." + }, + "prev_task_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор предыдущей заявки от покупателя по этому товару." + }, + "is_damaged": { + "type": "boolean", + "description": "Является ли товар уценённым. `true`, если уценённый." + }, + "moderated_at": { + "type": "string", + "format": "date-time", + "description": "Дата модерации: просмотра, одобрения или отклонения заявки.\n" + }, + "approved_discount": { + "type": "number", + "format": "double", + "description": "Скидка в рублях, которую одобрил продавец. Передайте значение `0`, если продавец не одобрял заявку." + }, + "approved_discount_percent": { + "type": "number", + "format": "double", + "description": "Скидка в процентах, которую одобрил продавец. Передайте значение `0`, если продавец не одобрял заявку." + }, + "is_purchased": { + "type": "boolean", + "description": "Покупал ли пользователь товар. `true`, если покупал." + }, + "is_auto_moderated": { + "type": "boolean", + "description": "Была ли заявка промодерирована автоматически. `true`, если модерация была автоматической." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "email": { + "type": "string", + "description": "Электронный адрес сотрудника продавца, который обработал заявку." + }, + "last_name": { + "type": "string", + "description": "Фамилия сотрудника продавца, который обработал заявку." + }, + "first_name": { + "type": "string", + "description": "Имя сотрудника продавца, который обработал заявку." + }, + "patronymic": { + "type": "string", + "description": "Отчество сотрудника продавца, который обработал заявку." + }, + "approved_quantity_min": { + "type": "integer", + "format": "uint64", + "description": "Минимальное одобренное количество товаров." + }, + "approved_quantity_max": { + "type": "integer", + "format": "uint64", + "description": "Максимальное одобренное количество товаров." + }, + "requested_quantity_min": { + "type": "integer", + "format": "uint64", + "description": "Запрошенное минимальное количество товаров." + }, + "requested_quantity_max": { + "type": "integer", + "format": "uint64", + "description": "Запрошенное максимальное количество товаров." + }, + "requested_price_with_fee": { + "type": "number", + "format": "double", + "description": "Цена по заявке c региональной наценкой." + }, + "approved_price_with_fee": { + "type": "number", + "format": "double", + "description": "Одобренная цена с региональной наценкой." + }, + "approved_price_fee_percent": { + "type": "number", + "format": "double", + "description": "Региональная наценка в процентах." + } + } + }, + "v1GetDiscountTaskListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GetDiscountTaskListResponseTask" + }, + "description": "Список заявок." + } + } + }, + "v1ApproveDiscountTasksRequestTask": { + "required": [ + "id", + "approved_price", + "approved_quantity_min", + "approved_quantity_max" + ], + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор заявки. Можно получить с помощью метода [/v1/actions/discounts-task/list](#operation/promos_task_list)." + }, + "approved_price": { + "type": "number", + "format": "double", + "description": "Согласованная цена." + }, + "seller_comment": { + "type": "string", + "description": "Комментарий продавца к заявке." + }, + "approved_quantity_min": { + "type": "integer", + "format": "uint64", + "description": "Одобренное минимальное количество товаров." + }, + "approved_quantity_max": { + "type": "integer", + "format": "uint64", + "description": "Одобренное максимальное количество товаров." + } + } + }, + "v1ApproveDiscountTasksRequest": { + "required": [ + "tasks" + ], + "type": "object", + "title": "object", + "properties": { + "tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1ApproveDiscountTasksRequestTask" + }, + "description": "Список заявок." + } + } + }, + "ApproveDeclineDiscountTasksResponseFailDetail": { + "type": "object", + "title": "object", + "properties": { + "task_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор заявки." + }, + "error_for_user": { + "type": "string", + "description": "Текст ошибки." + } + } + }, + "v1ApproveDeclineDiscountTasksResponseResult": { + "type": "object", + "title": "object", + "properties": { + "fail_details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApproveDeclineDiscountTasksResponseFailDetail" + }, + "description": "Ошибки при создании заявки." + }, + "success_count": { + "type": "integer", + "format": "int32", + "description": "Количество заявок с успешной сменой статуса." + }, + "fail_count": { + "type": "integer", + "format": "int32", + "description": "Количество заявок, у которых не удалось сменить статус." + } + }, + "description": "Результат работы метода." + }, + "v1ApproveDeclineDiscountTasksResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1ApproveDeclineDiscountTasksResponseResult" + } + } + }, + "v1DeclineDiscountTasksRequestTask": { + "required": [ + "id" + ], + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор заявки." + }, + "seller_comment": { + "type": "string", + "description": "Комментарий продавца к заявке." + } + } + }, + "v1DeclineDiscountTasksRequest": { + "required": [ + "tasks" + ], + "type": "object", + "title": "object", + "properties": { + "tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1DeclineDiscountTasksRequestTask" + }, + "description": "Список заявок." + } + } + }, + "v1GetCompetitorsRequest": { + "required": [ + "page", + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "page": { + "type": "integer", + "format": "int64", + "description": "Страница списка, с которой нужно выгрузить конкурентов. Минимальное значение — `1`." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Максимальное количество конкурентов на странице. Допустимы значения от `1` до `50`." + } + } + }, + "GetCompetitorsResponseCompetitorInfo": { + "type": "object", + "title": "object", + "properties": { + "name": { + "type": "string", + "description": "Название конкурента." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор конкурента." + } + } + }, + "v1GetCompetitorsResponse": { + "type": "object", + "title": "object", + "properties": { + "competitor": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetCompetitorsResponseCompetitorInfo" + }, + "description": "Список конкурентов." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Общее количество конкурентов." + } + } + }, + "v1GetStrategyListRequest": { + "required": [ + "page", + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "page": { + "type": "integer", + "format": "int64", + "description": "Страница списка, с которой нужно выгрузить стратегии. Минимальное значение — `1`." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Максимальное количество стратегий на странице. Допустимые значения — от `1` до `50`." + } + } + }, + "GetStrategyListResponseStrategy": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "string", + "description": "Идентификатор стратегии." + }, + "name": { + "type": "string", + "description": "Название стратегии." + }, + "type": { + "type": "string", + "description": "Тип стратегии:\n- `MIN_EXT_PRICE` — системная,\n- `COMP_PRICE` — пользовательская.\n" + }, + "update_type": { + "type": "string", + "description": "Тип последнего изменения стратегии:\n- `strategyEnabled` — возобновлена,\n- `strategyDisabled` — остановлена,\n- `strategyChanged` — обновлена,\n- `strategyCreated` — создана,\n- `strategyItemsListChanged` — изменён набор товаров в стратегии.\n" + }, + "updated_at": { + "type": "string", + "description": "Дата последнего изменения." + }, + "products_count": { + "type": "integer", + "format": "int64", + "description": "Количество товаров в стратегии." + }, + "competitors_count": { + "type": "integer", + "format": "int64", + "description": "Количество выбранных конкурентов." + }, + "enabled": { + "type": "boolean", + "description": "Статус стратегии:\n- `true` — включена,\n- `false` — отключена.\n" + } + } + }, + "v1GetStrategyListResponse": { + "type": "object", + "title": "object", + "properties": { + "strategies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetStrategyListResponseStrategy" + }, + "description": "Список стратегий." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Общее количество стратегий." + } + } + }, + "v1Competitor": { + "required": [ + "coefficient", + "competitor_id" + ], + "type": "object", + "title": "object", + "properties": { + "coefficient": { + "type": "number", + "format": "float", + "description": "Коэффициент, на который будет умножаться минимальная цена среди конкурентов. Допустимый диапазон — от `0.5` до `1.2`." + }, + "competitor_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор конкурента." + } + } + }, + "v1CreatePricingStrategyRequest": { + "required": [ + "competitors", + "strategy_name" + ], + "type": "object", + "title": "object", + "properties": { + "competitors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1Competitor" + }, + "description": "Список конкурентов." + }, + "strategy_name": { + "type": "string", + "description": "Название стратегии." + } + } + }, + "v1CreatePricingStrategyResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии." + } + } + }, + "v1CreatePricingStrategyResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1CreatePricingStrategyResponseResult" + } + } + }, + "v1StrategyRequest": { + "required": [ + "strategy_id" + ], + "type": "object", + "title": "object", + "properties": { + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии." + } + } + }, + "v1GetStrategyResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "competitors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1Competitor" + }, + "description": "Список конкурентов." + }, + "enabled": { + "type": "boolean", + "description": "Статус стратегии:\n- `true` — включена,\n- `false` — отключена.\n" + }, + "name": { + "type": "string", + "description": "Название стратегии." + }, + "type": { + "type": "string", + "description": "Тип стратегии:\n- `MIN_EXT_PRICE` — системная стратегия,\n- `COMP_PRICE` — пользовательская стратегия.\n" + }, + "update_type": { + "type": "string", + "description": "Тип последнего изменения стратегии:\n - `strategyEnabled` — возобновлена,\n - `strategyDisabled` — остановлена,\n - `strategyChanged` — обновлена,\n - `strategyCreated` — создана,\n - `strategyItemsListChanged` — изменён набор товаров в стратегии.\n" + } + } + }, + "v1GetStrategyResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1GetStrategyResponseResult" + } + } + }, + "v1UpdatePricingStrategyRequest": { + "required": [ + "competitors", + "strategy_id", + "strategy_name" + ], + "type": "object", + "title": "object", + "properties": { + "competitors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1Competitor" + }, + "description": "Список конкурентов." + }, + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии." + }, + "strategy_name": { + "type": "string", + "description": "Название стратегии." + } + } + }, + "v1AddStrategyItemsRequest": { + "required": [ + "product_id", + "strategy_id" + ], + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров в системе продавца — `product_id`. Максимальное количество — 50." + }, + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии." + } + } + }, + "AddStrategyItemsResponseError": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "error": { + "type": "string", + "description": "Текст ошибки." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "v1AddStrategyItemsResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddStrategyItemsResponseError" + }, + "description": "Товары с ошибками." + }, + "failed_product_count": { + "type": "integer", + "format": "int32", + "description": "Количество товаров с ошибками." + } + } + }, + "v1AddStrategyItemsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1AddStrategyItemsResponseResult" + } + } + }, + "v1ItemIDsRequest": { + "required": [ + "product_id" + ], + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров в системе продавца — `product_id`. Максимальное количество — 50." + } + } + }, + "GetStrategyIDsByItemIDsResponseProductInfo": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии, в которую добавлен товар." + } + } + }, + "v1GetStrategyIDsByItemIDsResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "products_info": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetStrategyIDsByItemIDsResponseProductInfo" + }, + "description": "Информация о товаре." + } + } + }, + "v1GetStrategyIDsByItemIDsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1GetStrategyIDsByItemIDsResponseResult" + } + } + }, + "v1GetStrategyItemsResponseResult": { + "type": "object", + "title": "object", + "description": "Список товаров.", + "properties": { + "product_id": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "v1GetStrategyItemsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1GetStrategyItemsResponseResult" + } + } + }, + "v1GetStrategyItemInfoRequest": { + "required": [ + "product_id" + ], + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "v1GetStrategyItemInfoResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии." + }, + "is_enabled": { + "type": "boolean", + "description": "`true`, если товар участвует в стратегии ценообразования.\n" + }, + "strategy_product_price": { + "type": "integer", + "format": "int32", + "description": "Цена по стратегии." + }, + "price_downloaded_at": { + "type": "string", + "description": "Дата установки цены по стратегии." + }, + "strategy_competitor_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор конкурента.", + "deprecated": true + }, + "strategy_competitor_product_url": { + "type": "string", + "description": "Ссылка на товар конкурента." + } + } + }, + "v1GetStrategyItemInfoResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1GetStrategyItemInfoResponseResult" + } + } + }, + "v1DeleteStrategyItemsResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "failed_product_count": { + "type": "integer", + "format": "int32", + "description": "Количество товаров с ошибками." + } + } + }, + "v1DeleteStrategyItemsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1DeleteStrategyItemsResponseResult" + } + } + }, + "v1UpdateStatusStrategyRequest": { + "required": [ + "strategy_id" + ], + "type": "object", + "title": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Статус стратегии:\n- `true` — включена,\n- `false` — отключена.\n" + }, + "strategy_id": { + "type": "string", + "description": "Идентификатор стратегии." + } + } + }, + "ArrivalPassListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтры.", + "properties": { + "arrival_pass_ids": { + "type": "array", + "description": "Фильтр по идентификатору пропуска.", + "items": { + "type": "string", + "format": "int64" + } + }, + "arrival_reason": { + "type": "string", + "description": "Фильтр по цели въезда:\n- `FBS_DELIVERY` — отгрузка.\n- `FBS_RETURN` — вывоз возвратов.\n\nЕсли параметр не указан, учитываются обе цели.\n\nУказанная причина должна быть в списке причин в пропусках.\n" + }, + "dropoff_point_ids": { + "type": "array", + "description": "Фильтр по точке отгрузки.", + "items": { + "type": "string", + "format": "int64" + } + }, + "only_active_passes": { + "type": "boolean", + "description": "`true`, чтобы получить только активные заявки на пропуск.\n" + }, + "warehouse_ids": { + "type": "array", + "description": "Фильтр по складу продавца. Можно получить с помощью метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList).", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "arrivalpassArrivalPassListRequest": { + "required": [ + "limit" + ], + "type": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "filter": { + "$ref": "#/components/schemas/ArrivalPassListRequestFilter" + }, + "limit": { + "type": "integer", + "description": "Ограничение по количеству записей в ответе.\nПо умолчанию — 1000. Максимум — 1000.\n", + "format": "int32" + } + } + }, + "arrivalpassArrivalPassListResponseArrivalPass": { + "type": "object", + "title": "object", + "properties": { + "arrival_pass_id": { + "type": "integer", + "description": "Идентификатор пропуска.", + "format": "int64" + }, + "arrival_reasons": { + "type": "array", + "description": "Цель приезда.", + "items": { + "type": "string" + } + }, + "arrival_time": { + "type": "string", + "description": "Дата и время въезда в формате UTC.", + "format": "date-time" + }, + "driver_name": { + "type": "string", + "description": "ФИО водителя." + }, + "driver_phone": { + "type": "string", + "description": "Номер телефона водителя." + }, + "dropoff_point_id": { + "type": "integer", + "description": "Идентификатор точки отгрузки.", + "format": "int64" + }, + "is_active": { + "type": "boolean", + "description": "`true`, если заявка активна.\n" + }, + "vehicle_license_plate": { + "type": "string", + "description": "Номер автомобиля." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "warehouse_id": { + "type": "integer", + "description": "Идентификатор склада продавца.", + "format": "int64" + } + } + }, + "arrivalpassArrivalPassListResponse": { + "type": "object", + "properties": { + "arrival_passes": { + "type": "array", + "description": "Список пропусков для перевозки.", + "items": { + "$ref": "#/components/schemas/arrivalpassArrivalPassListResponseArrivalPass" + } + }, + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных.\nЕсли параметр пустой, данных больше нет.\n" + } + } + }, + "sellerSellerAPIArrivalPassCreateRequestArrivalPass": { + "required": [ + "driver_name", + "driver_phone", + "vehicle_license_plate", + "vehicle_model" + ], + "type": "object", + "title": "object", + "properties": { + "driver_name": { + "type": "string", + "description": "ФИО водителя." + }, + "driver_phone": { + "type": "string", + "description": "Номер телефона водителя." + }, + "vehicle_license_plate": { + "type": "string", + "description": "Номер автомобиля." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "with_returns": { + "type": "boolean", + "description": "`true`, если будете вывозить возвраты. По умолчанию — `false`.\n" + } + } + }, + "sellerSellerAPIArrivalPassCreateRequest": { + "required": [ + "arrival_passes", + "carriage_id" + ], + "type": "object", + "title": "object", + "properties": { + "arrival_passes": { + "type": "array", + "description": "Список пропусков.", + "items": { + "$ref": "#/components/schemas/sellerSellerAPIArrivalPassCreateRequestArrivalPass" + } + }, + "carriage_id": { + "type": "integer", + "description": "Идентификатор перевозки.", + "format": "int64" + } + } + }, + "sellerSellerAPIArrivalPassCreateResponse": { + "type": "object", + "title": "object", + "description": "Результат запроса.", + "properties": { + "arrival_pass_ids": { + "type": "array", + "description": "Идентификаторы пропусков.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "sellerSellerAPIArrivalPassUpdateRequestArrivalPass": { + "required": [ + "driver_name", + "driver_phone", + "id", + "vehicle_license_plate", + "vehicle_model" + ], + "type": "object", + "title": "object", + "properties": { + "driver_name": { + "type": "string", + "description": "ФИО водителя." + }, + "driver_phone": { + "type": "string", + "description": "Номер телефона водителя." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор пропуска." + }, + "vehicle_license_plate": { + "type": "string", + "description": "Номер автомобиля." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "with_returns": { + "type": "boolean", + "description": "`true`, если будете вывозить возвраты. По умолчанию — `false`.\n" + } + } + }, + "sellerSellerAPIArrivalPassUpdateRequest": { + "required": [ + "arrival_passes", + "carriage_id" + ], + "type": "object", + "properties": { + "arrival_passes": { + "type": "array", + "description": "Список пропусков.", + "items": { + "$ref": "#/components/schemas/sellerSellerAPIArrivalPassUpdateRequestArrivalPass" + } + }, + "carriage_id": { + "type": "integer", + "description": "Идентификатор перевозки.", + "format": "int64" + } + } + }, + "sellerSellerAPIArrivalPassDeleteRequest": { + "required": [ + "arrival_pass_ids", + "carriage_id" + ], + "type": "object", + "properties": { + "arrival_pass_ids": { + "type": "array", + "description": "Идентификаторы пропусков.", + "items": { + "type": "string", + "format": "int64" + } + }, + "carriage_id": { + "type": "integer", + "description": "Идентификатор перевозки.", + "format": "int64" + } + } + }, + "arrivalpassArrivalPassCreateRequestArrivalPass": { + "required": [ + "arrival_time", + "driver_name", + "driver_phone", + "dropoff_point_id", + "vehicle_license_plate", + "vehicle_model", + "warehouse_id" + ], + "type": "object", + "title": "object", + "properties": { + "arrival_time": { + "type": "string", + "description": "Время прибытия в формате UTC. \nВ это время пропуск начнёт действовать.\n", + "format": "date-time" + }, + "driver_name": { + "type": "string", + "description": "ФИО водителя." + }, + "driver_phone": { + "type": "string", + "description": "Номер телефона водителя." + }, + "dropoff_point_id": { + "type": "integer", + "description": "Идентификатор склада, на который оформляется пропуск.", + "format": "int64" + }, + "vehicle_license_plate": { + "type": "string", + "description": "Номер автомобиля." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "warehouse_id": { + "type": "integer", + "description": "Идентификатор склада продавца. Можно получить с помощью метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList).", + "format": "int64" + } + } + }, + "arrivalpassArrivalPassCreateRequest": { + "required": [ + "arrival_passes" + ], + "type": "object", + "properties": { + "arrival_passes": { + "type": "array", + "description": "Список пропусков.", + "items": { + "$ref": "#/components/schemas/arrivalpassArrivalPassCreateRequestArrivalPass" + } + } + } + }, + "arrivalpassArrivalPassCreateResponse": { + "type": "object", + "properties": { + "arrival_pass_ids": { + "type": "array", + "description": "Идентификаторы пропусков.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "arrivalpassArrivalPassUpdateRequestArrivalPass": { + "required": [ + "arrival_pass_id", + "arrival_time", + "driver_name", + "driver_phone", + "vehicle_license_plate", + "vehicle_model" + ], + "type": "object", + "title": "object", + "properties": { + "arrival_pass_id": { + "type": "integer", + "description": "Идентификатор пропуска.", + "format": "int64" + }, + "arrival_time": { + "type": "string", + "description": "Время прибытия в формате UTC.\nВ это время начнёт действовать пропуск.\n\nЧтобы изменить время прибытия, используйте метод [/v1/carriage/pass/update](#operation/carriagePassUpdate).\n", + "format": "date-time" + }, + "driver_name": { + "type": "string", + "description": "ФИО водителя." + }, + "driver_phone": { + "type": "string", + "description": "Номер телефона водителя." + }, + "vehicle_license_plate": { + "type": "string", + "description": "Номер автомобиля." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + } + } + }, + "arrivalpassArrivalPassUpdateRequest": { + "required": [ + "arrival_passes" + ], + "type": "object", + "properties": { + "arrival_passes": { + "type": "array", + "description": "Список пропусков.", + "items": { + "$ref": "#/components/schemas/arrivalpassArrivalPassUpdateRequestArrivalPass" + } + } + } + }, + "arrivalpassArrivalPassDeleteRequest": { + "required": [ + "arrival_pass_ids" + ], + "type": "object", + "properties": { + "arrival_pass_ids": { + "type": "array", + "description": "Идентификаторы пропусков.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "brandBrandCompanyCertificationListRequest": { + "required": [ + "page", + "page_size" + ], + "properties": { + "page": { + "format": "int32", + "type": "integer", + "description": "Номер страницы, возвращаемой в запросе." + }, + "page_size": { + "format": "int32", + "type": "integer", + "description": "Количество элементов на странице." + } + }, + "type": "object", + "title": "object" + }, + "BrandCompanyCertificationListResponseBrandCertification": { + "properties": { + "brand_name": { + "type": "string", + "description": "Название бренда." + }, + "has_certificate": { + "type": "boolean", + "description": "Признак, что требуется сертификат:\n- `true` — требуется сертификат;\n- `false` — сертификат не нужен.\n" + } + }, + "type": "object", + "title": "object" + }, + "BrandCompanyCertificationListResponseBrandCertificationResult": { + "properties": { + "brand_certification": { + "items": { + "$ref": "#/components/schemas/BrandCompanyCertificationListResponseBrandCertification" + }, + "type": "array", + "description": "Информация о сертифицируемых брендах." + }, + "total": { + "format": "int64", + "type": "integer", + "description": "Общее количество брендов." + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "brandBrandCompanyCertificationListResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/BrandCompanyCertificationListResponseBrandCertificationResult" + } + }, + "type": "object", + "title": "object" + }, + "productProductCertificateAccordanceTypesResponseType": { + "properties": { + "name": { + "type": "string", + "description": "Название документа." + }, + "value": { + "type": "string", + "description": "Значение справочника." + } + }, + "type": "object", + "title": "object" + }, + "productProductCertificateAccordanceTypesResponse": { + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/productProductCertificateAccordanceTypesResponseType" + }, + "type": "array", + "description": "Список типов и названий сертификатов." + } + }, + "type": "object", + "title": "object" + }, + "googlerpcStatus": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "Код ошибки." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/protobufAny" + }, + "description": "Дополнительная информация об ошибке." + }, + "message": { + "type": "string", + "description": "Описание ошибки." + } + } + }, + "v2ProductCertificateAccordanceTypesResponseType": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код типа соответствия требованиям." + }, + "title": { + "type": "string", + "description": "Описание типа соответствия требованиям." + } + } + }, + "v2ProductCertificateAccordanceTypesResponseResult": { + "type": "object", + "title": "object", + "properties": { + "base": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v2ProductCertificateAccordanceTypesResponseType" + }, + "description": "Основные типы соответствия требованиям." + }, + "hazard": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v2ProductCertificateAccordanceTypesResponseType" + }, + "description": "Типов соответствия требованиям, относящиеся к опасным товарам." + } + }, + "description": "Список типов соответствия требованиям." + }, + "v2ProductCertificateAccordanceTypesResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v2ProductCertificateAccordanceTypesResponseResult" + } + } + }, + "productProductCertificateTypesResponseType": { + "properties": { + "name": { + "type": "string", + "description": "Название документа." + }, + "value": { + "type": "string", + "description": "Значение справочника." + } + }, + "type": "object", + "title": "object" + }, + "productProductCertificateTypesResponse": { + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/productProductCertificateTypesResponseType" + }, + "type": "array", + "description": "Список типов и названий сертификатов." + } + }, + "type": "object", + "title": "object" + }, + "v2ProductCertificationListRequest": { + "required": [ + "page", + "page_size" + ], + "type": "object", + "properties": { + "page": { + "description": "Номер страницы.", + "type": "integer", + "format": "int64" + }, + "page_size": { + "description": "Количество элементов на странице.", + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 1000 + } + } + }, + "ProductCertificationListResponseCertificationv2": { + "type": "object", + "properties": { + "category_id": { + "description": "Идентификатор сертифицируемой категории.", + "type": "integer", + "format": "int64" + }, + "category_name": { + "description": "Название сертифицируемой категории.", + "type": "string" + }, + "is_required": { + "description": "Признак обязательной характеристики.", + "type": "boolean" + }, + "type_id": { + "description": "Идентификатор типа сертифицируемой категории.", + "type": "integer", + "format": "int64" + }, + "type_name": { + "description": "Название типа сертифицируемой категории.", + "type": "string" + } + } + }, + "v2ProductCertificationListResponse": { + "type": "object", + "properties": { + "certification": { + "description": "Информация о сертифицируемых категориях.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductCertificationListResponseCertificationv2" + } + }, + "total": { + "description": "Всего категорий.", + "type": "integer", + "format": "int64" + } + } + }, + "productProductCertificationListRequest": { + "properties": { + "page": { + "format": "int32", + "type": "integer", + "description": "Номер страницы, возвращаемой в запросе." + }, + "page_size": { + "format": "int32", + "type": "integer", + "description": "Количество элементов на странице." + } + }, + "type": "object", + "title": "object" + }, + "ProductCertificationListResponseCertification": { + "properties": { + "category_name": { + "type": "string", + "description": "Название сертифицируемой категории." + }, + "is_required": { + "type": "boolean", + "description": "Признак обязательной характеристики." + } + }, + "type": "object", + "title": "object" + }, + "ProductCertificationListResponseCertificationResult": { + "properties": { + "certification": { + "items": { + "$ref": "#/components/schemas/ProductCertificationListResponseCertification" + }, + "type": "array", + "description": "Информация о сертифицируемых категориях." + }, + "total": { + "format": "int64", + "type": "integer", + "description": "Всего категорий." + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "productProductCertificationListResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/ProductCertificationListResponseCertificationResult" + } + }, + "type": "object", + "title": "object" + }, + "productProductCertificateBindRequest": { + "properties": { + "certificate_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор сертификата, который был присвоен при его загрузке." + }, + "product_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Массив идентификаторов товаров, к которым относится этот сертификат." + } + }, + "type": "object", + "title": "object" + }, + "v1ProductCertificateDeleteRequest": { + "type": "object", + "title": "object", + "properties": { + "certificate_id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор сертификата." + } + }, + "required": [ + "certificate_id" + ] + }, + "v1ProductCertificateDeleteResponseResult": { + "type": "object", + "title": "object", + "properties": { + "is_delete": { + "type": "boolean", + "description": "Удалён ли сертификат:\n- `true` — удалён,\n- `false` — не удалён.\n" + }, + "error_message": { + "type": "string", + "description": "Описание ошибок при удалении сертификата." + } + }, + "description": "Результат удаления сертификата." + }, + "v1ProductCertificateDeleteResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1ProductCertificateDeleteResponseResult" + } + } + }, + "v1ProductCertificateInfoRequest": { + "type": "object", + "title": "object", + "properties": { + "certificate_number": { + "type": "string", + "description": "Идентификатор сертификата." + } + }, + "required": [ + "certificate_number" + ] + }, + "v1Certificate": { + "type": "object", + "title": "object", + "properties": { + "certificate_id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор." + }, + "certificate_number": { + "type": "string", + "description": "Номер." + }, + "certificate_name": { + "type": "string", + "description": "Название." + }, + "type_code": { + "type": "string", + "description": "Тип." + }, + "status_code": { + "type": "string", + "description": "Статус." + }, + "accordance_type_code": { + "type": "string", + "description": "Тип соответствия требованиям." + }, + "rejection_reason_code": { + "type": "string", + "description": "Причина отклонения сертификата." + }, + "verification_comment": { + "type": "string", + "description": "Комментарий модератора." + }, + "issue_date": { + "type": "string", + "format": "date-time", + "description": "Дата создания." + }, + "expire_date": { + "type": "string", + "format": "date-time", + "description": "Дата окончания действия." + }, + "products_count": { + "type": "integer", + "format": "int32", + "description": "Количество товаров, привязанных к сертификату." + } + }, + "description": "Информация о сертификате." + }, + "v1ProductCertificateInfoResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1Certificate" + } + } + }, + "v1ProductCertificateListRequest": { + "type": "object", + "title": "object", + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул, привязанный к сертификату. Передайте параметр, если нужны сертификаты, к которым привязаны определённые товары." + }, + "status": { + "type": "string", + "description": "Статус сертификата. Передайте параметр, если нужны сертификаты с определённым статусом." + }, + "type": { + "type": "string", + "description": "Тип сертификата. Передайте параметр, если нужны сертификаты с определённым типом." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Страница, с которой следует выводить список. Минимальное значение — 1." + }, + "page_size": { + "type": "integer", + "format": "int32", + "description": "Количество объектов на странице. Значение — от 1 до 1000." + } + }, + "required": [ + "page", + "page_size" + ] + }, + "v1ProductCertificateListResponseResult": { + "type": "object", + "title": "object", + "properties": { + "certificates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1Certificate" + }, + "description": "Информация о сертификате." + }, + "page_count": { + "type": "integer", + "format": "int32", + "description": "Количество страниц." + } + }, + "description": "Список сертификатов." + }, + "v1ProductCertificateListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1ProductCertificateListResponseResult" + } + } + }, + "v1ProductCertificateProductStatusListRequest": { + "type": "object", + "title": "object" + }, + "v1StatusCodeNamePair": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код статуса товара при привязке к сертификату." + }, + "name": { + "type": "string", + "description": "Описание статуса." + } + } + }, + "v1ProductCertificateProductStatusListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1StatusCodeNamePair" + }, + "description": "Список статусов товаров." + } + } + }, + "v1ProductCertificateProductsListRequest": { + "type": "object", + "title": "object", + "properties": { + "certificate_id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор сертификата." + }, + "product_status_code": { + "type": "string", + "description": "Статус проверки товара при привязке к сертификату." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Номер страницы, с которой выводить список. Минимальное значение — 1." + }, + "page_size": { + "type": "integer", + "format": "int32", + "description": "Количество объектов на странице. Значение — от 1 до 1000." + } + }, + "required": [ + "certificate_id", + "page", + "page_size" + ] + }, + "ProductCertificateProductsListResponseProduct": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "product_status_code": { + "type": "string", + "description": "Статус обработки товара при привязке к сертификату." + } + } + }, + "v1ProductCertificateProductsListResponseResult": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductCertificateProductsListResponseProduct" + }, + "description": "Список товаров." + }, + "count": { + "type": "integer", + "format": "int64", + "description": "Количество найденных товаров." + } + }, + "description": "Товары, привязанные к сертификату." + }, + "v1ProductCertificateProductsListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1ProductCertificateProductsListResponseResult" + } + } + }, + "v1ProductCertificateUnbindRequest": { + "type": "object", + "title": "object", + "properties": { + "certificate_id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор сертификата." + }, + "product_id": { + "type": "array", + "items": { + "type": "string", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "description": "Список идентификаторов товара, которые нужно отвязать от сертификата." + } + }, + "required": [ + "certificate_id", + "product_id" + ] + }, + "ProductCertificateUnbindResponseItem": { + "type": "object", + "title": "object", + "properties": { + "error": { + "type": "string", + "description": "Сообщение об ошибке при отвязывании товара." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "updated": { + "type": "boolean", + "description": "Был ли отвязан товар от сертификата:\n- `true` — отвязан,\n- `false` — не отвязан.\n" + } + } + }, + "v1ProductCertificateUnbindResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductCertificateUnbindResponseItem" + }, + "description": "Результат работы метода." + } + } + }, + "v1ProductCertificateRejectionReasonsListRequest": { + "type": "object", + "title": "object" + }, + "v1StatusCodeNamePairRejection": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код причины отклонения сертификата." + }, + "name": { + "type": "string", + "description": "Описание причины отклонения сертификата." + } + } + }, + "v1ProductCertificateRejectionReasonsListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1StatusCodeNamePairRejection" + }, + "description": "Причины отклонения сертификата." + } + } + }, + "v1ProductCertificateStatusListRequest": { + "type": "object", + "title": "object" + }, + "v1StatusCodeNamePairStatuses": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код статуса сертификата." + }, + "name": { + "type": "string", + "description": "Описание статуса." + } + } + }, + "v1ProductCertificateStatusListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1StatusCodeNamePairStatuses" + }, + "description": "Список возможных статусов сертификатов." + } + } + }, + "WarehouseFirstMileType": { + "type": "object", + "title": "object", + "description": "Первая миля FBS.", + "properties": { + "dropoff_point_id": { + "type": "string", + "description": "Идентификатор DropOff-точки." + }, + "dropoff_timeslot_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор временного слота для DropOff." + }, + "first_mile_is_changing": { + "type": "boolean", + "description": "Признак, что настройки склада обновляются." + }, + "first_mile_type": { + "type": "string", + "description": "Тип первой мили — `DropOff` или `Pickup`.", + "enum": [ + "DropOff", + "Pickup" + ] + } + } + }, + "WarehouseListResponseWarehouse": { + "properties": { + "has_entrusted_acceptance": { + "type": "boolean", + "description": "Признак доверительной приёмки. `true`, если доверительная приёмка включена на складе." + }, + "is_rfbs": { + "type": "boolean", + "description": "Признак работы склада по схеме rFBS:\n- `true` — склад работает по схеме rFBS;\n- `false` — не работает по схеме rFBS.\n" + }, + "name": { + "type": "string", + "description": "Название склада." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + }, + "can_print_act_in_advance": { + "type": "boolean", + "description": "Возможность печати акта приёма-передачи заранее. `true`, если печатать заранее возможно." + }, + "first_mile_type": { + "$ref": "#/components/schemas/WarehouseFirstMileType" + }, + "has_postings_limit": { + "type": "boolean", + "description": "Признак наличия лимита минимального количества заказов. `true`, если лимит есть." + }, + "is_karantin": { + "type": "boolean", + "description": "Признак, что склад не работает из-за карантина." + }, + "is_kgt": { + "type": "boolean", + "description": "Признак, что склад принимает крупногабаритные товары." + }, + "is_economy": { + "type": "boolean", + "description": "`true`, если склад работает с эконом-товарами.\n" + }, + "is_timetable_editable": { + "type": "boolean", + "description": "Признак, что можно менять расписание работы складов." + }, + "min_postings_limit": { + "type": "integer", + "format": "int32", + "description": "Минимальное значение лимита — количество заказов, которые можно привезти в одной поставке." + }, + "postings_limit": { + "type": "integer", + "format": "int32", + "description": "Значение лимита. `-1`, если лимита нет." + }, + "min_working_days": { + "type": "integer", + "format": "int64", + "description": "Количество рабочих дней склада." + }, + "status": { + "type": "string", + "description": "Статус склада.\n\nСоответствие статусов склада со статусами с личном кабинете:\n\n| Статус Seller API | Статус в личном кабинете |\n|---|---|\n| `new` | Активируется |\n| `created` | Активный |\n| `disabled` | В архиве |\n| `blocked` | Заблокирован |\n| `disabled_due_to_limit` | На паузе |\n| `error` | Ошибка |\n" + }, + "working_days": { + "description": "Рабочие дни склада.", + "items": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "type": "object", + "title": "object" + }, + "warehouseWarehouseListResponse": { + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/WarehouseListResponseWarehouse" + }, + "type": "array", + "description": "Список складов." + } + }, + "type": "object", + "title": "object" + }, + "DeliveryMethodListRequestFilter": { + "properties": { + "provider_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор службы доставки." + }, + "status": { + "type": "string", + "description": "Статус метода доставки:\n - `NEW` — создан,\n - `EDITED` — редактируется,\n - `ACTIVE` — активный,\n - `DISABLED` — неактивный.\n" + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада. Можно получить с помощью метода [/v1/warehouse/list ](#operation/WarehouseAPI_WarehouseList)." + } + }, + "type": "object", + "title": "object", + "description": "Фильтр для поиска методов доставки." + }, + "warehouseDeliveryMethodListRequest": { + "required": [ + "limit" + ], + "properties": { + "filter": { + "$ref": "#/components/schemas/DeliveryMethodListRequestFilter" + }, + "limit": { + "format": "int64", + "type": "integer", + "description": "Количество элементов в ответе. Максимум — 50, минимум — 1." + }, + "offset": { + "format": "int64", + "type": "integer", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента." + } + }, + "type": "object", + "title": "object" + }, + "DeliveryMethodListResponseDeliveryMethod": { + "properties": { + "company_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор продавца." + }, + "created_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время создания метода доставки." + }, + "cutoff": { + "type": "string", + "description": "Время, до которого продавцу нужно собрать заказ." + }, + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор метода доставки." + }, + "name": { + "type": "string", + "description": "Название метода доставки." + }, + "provider_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор службы доставки." + }, + "sla_cut_in": { + "format": "int64", + "type": "integer", + "description": "Минимальное время на сборку заказа в минутах в соответствии с настройками склада." + }, + "status": { + "type": "string", + "description": "Статус метода доставки:\n - `NEW` — создан,\n - `EDITED` — редактируется,\n - `ACTIVE` — активный,\n - `DISABLED` — неактивный.\n" + }, + "template_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор услуги по доставке заказа." + }, + "updated_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время последнего обновления метода метода доставки." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + } + }, + "type": "object", + "title": "object" + }, + "warehouseDeliveryMethodListResponse": { + "properties": { + "has_next": { + "type": "boolean", + "description": "Признак, что в запросе вернулась только часть методов доставки:\n- `true` — сделайте повторный запрос с новым параметром `offset` для получения остальных методов;\n- `false` — ответ содержит все методы доставки по запросу.\n" + }, + "result": { + "items": { + "$ref": "#/components/schemas/DeliveryMethodListResponseDeliveryMethod" + }, + "type": "array", + "description": "Результат запроса." + } + }, + "type": "object", + "title": "object" + }, + "polygonv1PolygonCreateRequest": { + "required": [ + "coordinates" + ], + "type": "object", + "title": "object", + "properties": { + "coordinates": { + "description": "Координаты полигона доставки в формате `[[[lat long]]]`.\n", + "type": "string" + } + } + }, + "polygonv1PolygonCreateResponse": { + "type": "object", + "title": "object", + "properties": { + "polygon_id": { + "description": "Идентификатор полигона.", + "type": "integer", + "format": "int64" + } + } + }, + "rpcStatus_v1PolygonCreate": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "Код ошибки." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/protobufAny" + }, + "description": "Информация об ошибке." + }, + "message": { + "type": "string", + "description": "Сообщение об ошибке:\n\n - `coordinates not provided` — координаты не переданы;\n - `invalid coordinates, must have two points in coordinate` — в какой-то точке передана только широта или долгота, нужно передать две точки;\n - `the first and last points in loop must be same` — первая и последняя точка не совпадают (по стандартным правилам geojson точки должны совпадать);\n - `non-full loops must have at least 4 unique vertices for polygons` — для полигона передано менее четырех точек.\n" + } + } + }, + "PolygonBindRequestpolygon": { + "required": [ + "polygon_id", + "time" + ], + "type": "object", + "title": "object", + "properties": { + "polygon_id": { + "description": "Идентификатор полигона.", + "type": "integer", + "format": "int64" + }, + "time": { + "description": "Время в минутах, за которое доставят товар в этом полигоне.", + "type": "integer", + "format": "int64" + } + } + }, + "PolygonBindRequestwh_location": { + "required": [ + "lat", + "lon" + ], + "type": "object", + "title": "object", + "description": "Расположение склада.", + "properties": { + "lat": { + "description": "Географическая широта расположения склада.", + "type": "string" + }, + "lon": { + "description": "Географическая долгота расположения склада.", + "type": "string" + } + } + }, + "polygonv1PolygonBindRequest": { + "required": [ + "delivery_method_id", + "polygons", + "warehouse_location" + ], + "type": "object", + "title": "object", + "properties": { + "delivery_method_id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор метода доставки." + }, + "polygons": { + "type": "array", + "description": "Список полигонов.", + "items": { + "$ref": "#/components/schemas/PolygonBindRequestpolygon" + } + }, + "warehouse_location": { + "$ref": "#/components/schemas/PolygonBindRequestwh_location" + } + } + }, + "polygonv1Empty": { + "type": "object", + "title": "object" + }, + "rpcStatus_v1PolygonBind": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/protobufAny" + } + }, + "message": { + "type": "string", + "description": "Сообщение об ошибке:\n\n - **delivery target polygons not provided** — полигоны не переданы;\n - **no delivery method id provided** — delivery_method_id не передан;\n - **no warehouse points provided** — не передана координата склада;\n - **polygon id .... not found** — переданы ID полигонов, которые не найдены в базе данных;\n - **not found polygon for warehouse point** — точка склада не принадлежит ни одному переданному полигону.\n" + } + } + }, + "postingGetFboPostingListRequestFilter": { + "required": [ + "since", + "to" + ], + "properties": { + "since": { + "format": "date-time", + "type": "string", + "description": "Начало периода в формате YYYY-MM-DD." + }, + "status": { + "type": "string", + "description": "Статус отправления.\n- `awaiting_packaging` — ожидает упаковки,\n- `awaiting_deliver` — ожидает отгрузки,\n- `delivering` — доставляется,\n- `delivered` — доставлено,\n- `cancelled` — отменено.\n" + }, + "to": { + "format": "date-time", + "type": "string", + "description": "Конец периода в формате YYYY-MM-DD." + } + }, + "type": "object", + "title": "object", + "description": "Фильтр для поиска отправлений." + }, + "postingFboPostingWithParams": { + "properties": { + "analytics_data": { + "type": "boolean", + "description": "Передайте `true`, чтобы добавить в ответ данные аналитики." + }, + "financial_data": { + "type": "boolean", + "description": "Передайте `true`, чтобы добавить в ответ финансовые данные." + }, + "legal_info": { + "type": "boolean", + "description": "Передайте `true`, чтобы добавить в ответ юридическую информацию." + } + }, + "type": "object", + "title": "object", + "description": "Дополнительные поля, которые нужно добавить в ответ." + }, + "postingGetFboPostingListRequest": { + "required": [ + "limit", + "filter" + ], + "properties": { + "dir": { + "type": "string", + "description": "Направление сортировки:\n - `asc` — по возрастанию,\n - `desc` — по убыванию.\n" + }, + "filter": { + "$ref": "#/components/schemas/postingGetFboPostingListRequestFilter" + }, + "limit": { + "format": "int64", + "type": "integer", + "description": "Количество значений в ответе:\n - максимум — 1000,\n - минимум — 1.\n" + }, + "offset": { + "format": "int64", + "type": "integer", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента. Максимальное значение — 20000." + }, + "translit": { + "type": "boolean", + "description": "Если включена транслитерация адреса из кириллицы в латиницу — `true`." + }, + "with": { + "$ref": "#/components/schemas/postingFboPostingWithParams" + } + }, + "type": "object", + "title": "object" + }, + "v2AdditionalDataItem": { + "properties": { + "key": { + "type": "string", + "description": null + }, + "value": { + "type": "string", + "description": null + } + }, + "type": "object", + "title": "object", + "description": "Дополнительная информация." + }, + "FboPostingFboPostingAnalyticsData": { + "properties": { + "city": { + "type": "string", + "description": "Город доставки. Только для продавцов из СНГ." + }, + "delivery_type": { + "type": "string", + "description": "Способ доставки." + }, + "is_legal": { + "type": "boolean", + "description": "Получатель юридическое лицо:\n - `true` — юридическое лицо,\n - `false` — физическое лицо.\n" + }, + "is_premium": { + "type": "boolean", + "description": "Наличие подписки Premium." + }, + "payment_type_group_name": { + "type": "string", + "description": "Способ оплаты: \n- `картой онлайн`,\n- `Ozon Карта`,\n- `автосписание с Ozon Карты при выдаче`,\n- `сохранённой картой при получении`,\n- `Система Быстрых Платежей`, \n- `Ozon Рассрочка`, \n- `оплата на расчётный счёт`,\n- `SberPay`.\n" + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + }, + "warehouse_name": { + "type": "string", + "description": "Название склада отправки заказа." + } + }, + "type": "object", + "title": "object", + "description": "Данные аналитики." + }, + "PostingFinancialDataProduct": { + "properties": { + "actions": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Список акций." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Cовпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "commission_amount": { + "format": "double", + "type": "number", + "description": "Размер комиссии за товар." + }, + "commission_percent": { + "format": "int64", + "type": "integer", + "description": "Процент комиссии." + }, + "commissions_currency_code": { + "type": "string", + "description": "Код валюты, в которой рассчитывались комиссии." + }, + "old_price": { + "format": "double", + "type": "number", + "description": "Цена до учёта скидок. На карточке товара отображается зачёркнутой." + }, + "payout": { + "format": "double", + "type": "number", + "description": "Выплата продавцу." + }, + "price": { + "format": "double", + "type": "number", + "description": "Цена товара с учётом скидок — это значение показывается на карточке товара." + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "quantity": { + "format": "int64", + "type": "integer", + "description": "Количество товара в отправлении." + }, + "total_discount_percent": { + "format": "double", + "type": "number", + "description": "Процент скидки." + }, + "total_discount_value": { + "format": "double", + "type": "number", + "description": "Сумма скидки." + } + }, + "type": "object", + "title": "object" + }, + "v2PostingFinancialData": { + "properties": { + "cluster_from": { + "type": "string", + "description": "Код региона, откуда отправляется заказ." + }, + "cluster_to": { + "type": "string", + "description": "Код региона, куда доставляется заказ." + }, + "products": { + "items": { + "$ref": "#/components/schemas/PostingFinancialDataProduct" + }, + "type": "array", + "description": "Список товаров в заказе." + } + }, + "type": "object", + "title": "object", + "description": "Финансовые данные." + }, + "v2FboSinglePostingLegalInfo": { + "type": "object", + "description": "Юридическая информация о покупателе.", + "properties": { + "company_name": { + "type": "string", + "description": "Название компании." + }, + "inn": { + "type": "string", + "description": "ИНН." + }, + "kpp": { + "type": "string", + "description": "КПП." + } + } + }, + "v2PostingProduct": { + "properties": { + "digital_codes": { + "items": { + "type": "string" + }, + "description": "Коды активации для услуг и цифровых товаров." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Cовпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "price": { + "type": "string", + "description": "Цена товара." + }, + "is_marketplace_buyout": { + "type": "boolean", + "description": "Признак выкупа товара." + }, + "quantity": { + "format": "int64", + "type": "integer", + "description": "Количество товара в отправлении." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "type": "object", + "title": "object" + }, + "v2FboPosting": { + "properties": { + "additional_data": { + "items": { + "$ref": "#/components/schemas/v2AdditionalDataItem" + }, + "type": "array" + }, + "analytics_data": { + "$ref": "#/components/schemas/FboPostingFboPostingAnalyticsData" + }, + "cancel_reason_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены отправления." + }, + "created_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время создания отправления." + }, + "financial_data": { + "$ref": "#/components/schemas/v2PostingFinancialData" + }, + "in_process_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала обработки отправления." + }, + "legal_info": { + "$ref": "#/components/schemas/v2FboSinglePostingLegalInfo" + }, + "order_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор заказа, к которому относится отправление." + }, + "order_number": { + "type": "string", + "description": "Номер заказа, к которому относится отправление." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "items": { + "$ref": "#/components/schemas/v2PostingProduct" + }, + "type": "array", + "description": "Список товаров в отправлении." + }, + "status": { + "type": "string", + "description": "Статус отправления:\n - `awaiting_packaging` — ожидает упаковки,\n - `awaiting_deliver` — ожидает отгрузки,\n - `delivering` — доставляется,\n - `delivered` — доставлено,\n - `cancelled` — отменено.\n" + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "v2FboPostingListResponse": { + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/v2FboPosting" + }, + "type": "array", + "description": "Массив отправлений." + } + }, + "type": "object", + "title": "object" + }, + "postingGetFboPostingRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "translit": { + "type": "boolean", + "description": "Если включена транслитерация адреса из кириллицы в латиницу — `true`." + }, + "with": { + "$ref": "#/components/schemas/postingFboPostingWithParams" + } + }, + "type": "object", + "title": "object" + }, + "v2FboPostingResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/v2FboPosting" + } + }, + "type": "object", + "title": "object" + }, + "CancelReasonListResponseCancelReason": { + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены." + }, + "is_available_for_cancellation": { + "type": "boolean", + "description": "Результат отмены отправления. `true`, если запрос доступен для отмены." + }, + "title": { + "type": "string", + "description": "Название категории." + }, + "type_id": { + "type": "string", + "description": "Инициатор отмены отправления:\n- `buyer` — покупатель,\n- `seller` — продавец.\n" + } + }, + "type": "object", + "title": "object" + }, + "v1CancelReasonListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат работы метода.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CancelReasonListResponseCancelReason" + } + } + } + }, + "commonEmpty": { + "type": "object", + "title": "object" + }, + "v1OrderState": { + "type": "string", + "title": "SupplyOrderStatusCounter", + "default": "ORDER_STATE_UNSPECIFIED", + "enum": [ + "ORDER_STATE_UNSPECIFIED", + "ORDER_STATE_DATA_FILLING", + "ORDER_STATE_READY_TO_SUPPLY", + "ORDER_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE", + "ORDER_STATE_IN_TRANSIT", + "ORDER_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE", + "ORDER_STATE_REPORTS_CONFIRMATION_AWAITING", + "ORDER_STATE_REPORT_REJECTED", + "ORDER_STATE_COMPLETED", + "ORDER_STATE_REJECTED_AT_SUPPLY_WAREHOUSE", + "ORDER_STATE_CANCELLED" + ], + "description": "Статус поставки:\n- `UNSPECIFIED` — статус не указан;\n- `DATA_FILLING` — заполнение данных;\n- `READY_TO_SUPPLY` — готова к отгрузке;\n- `ACCEPTED_AT_SUPPLY_WAREHOUSE` — принята на точке отгрузки;\n- `IN_TRANSIT` — в пути;\n- `ACCEPTANCE_AT_STORAGE_WAREHOUSE` — приёмка на складе;\n- `REPORTS_CONFIRMATION_AWAITING` — согласование актов;\n- `REPORT_REJECTED` — спор;\n- `COMPLETED` — завершена;\n- `REJECTED_AT_SUPPLY_WAREHOUSE` — отказано в приёмке;\n- `CANCELLED` — отменена.\n" + }, + "v1SupplyOrderStatusCounterResponseItem": { + "type": "object", + "title": "object", + "properties": { + "count": { + "description": "Количество заявок в статусе.", + "type": "integer", + "format": "int32" + }, + "order_state": { + "description": null, + "$ref": "#/components/schemas/v1OrderState" + } + } + }, + "v1SupplyOrderStatusCounterResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1SupplyOrderStatusCounterResponseItem" + } + } + } + }, + "GetSupplyOrderBundleRequestItemTagsCalculation": { + "type": "object", + "title": "object", + "description": "Список складов для расчёта товарных тегов.", + "properties": { + "dropoff_warehouse_id": { + "description": "Идентификатор склада отгрузки поставки.", + "type": "string" + }, + "storage_warehouse_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Список идентификаторов складов поставки, не больше 25 значений." + } + }, + "required": [ + "dropoff_warehouse_id", + "storage_warehouse_ids" + ] + }, + "v1ItemSortField": { + "type": "string", + "title": "string", + "default": "UNSPECIFIED", + "enum": [ + "UNSPECIFIED", + "SKU", + "NAME", + "QUANTITY", + "TOTAL_VOLUME_IN_LITRES" + ], + "description": "Сортировка по параметрам:\n- `SKU` — SKU;\n- `NAME` — названию товара;\n- `QUANTITY` — количеству;\n- `TOTAL_VOLUME_IN_LITRES` — объёму в литрах.\n" + }, + "v1GetSupplyOrderBundleRequest": { + "required": [ + "bundle_ids", + "limit" + ], + "type": "object", + "properties": { + "bundle_ids": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "description": "Идентификаторы товарного состава поставки. Можно получить в методе [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2).", + "items": { + "type": "string" + } + }, + "is_asc": { + "type": "boolean", + "description": "`true`, чтобы сортировать по возрастанию.\n" + }, + "item_tags_calculation": { + "$ref": "#/components/schemas/GetSupplyOrderBundleRequestItemTagsCalculation" + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения SKU на странице." + }, + "limit": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 100, + "description": "Количество товаров на странице." + }, + "query": { + "type": "string", + "description": "Поисковый запрос, например: по названию, артикулу или SKU.\n" + }, + "sort_field": { + "$ref": "#/components/schemas/v1ItemSortField" + } + } + }, + "v1ItemSfboAttribute": { + "type": "string", + "title": "string", + "default": "ITEM_SFBO_ATTRIBUTE_UNSPECIFIED", + "enum": [ + "ITEM_SFBO_ATTRIBUTE_NONE", + "ITEM_SFBO_ATTRIBUTE_SUPER_FBO", + "ITEM_SFBO_ATTRIBUTE_ANTI_FBO" + ], + "description": "Метка Super-товара:\n- `ITEM_SFBO_ATTRIBUTE_NONE` — без метки;\n- `ITEM_SFBO_ATTRIBUTE_SUPER_FBO` — Super-товар;\n- `ITEM_SFBO_ATTRIBUTE_ANTI_FBO` — неходовой товар.\n" + }, + "v1BundleItemShipmentType": { + "type": "string", + "title": "string", + "default": "BUNDLE_ITEM_SHIPMENT_TYPE_UNSPECIFIED", + "enum": [ + "BUNDLE_ITEM_SHIPMENT_TYPE_GENERAL", + "BUNDLE_ITEM_SHIPMENT_TYPE_BOX", + "BUNDLE_ITEM_SHIPMENT_TYPE_PALLET" + ], + "description": "Тип упаковки:\n- `BUNDLE_ITEM_SHIPMENT_TYPE_GENERAL` — обычный товар;\n- `BUNDLE_ITEM_SHIPMENT_TYPE_BOX` — коробка;\n- `BUNDLE_ITEM_SHIPMENT_TYPE_PALLET` — палета.\n" + }, + "v1ItemResponse": { + "type": "object", + "title": "object", + "properties": { + "icon_path": { + "type": "string", + "description": "Ссылка на изображение товара." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + }, + "barcode": { + "type": "string", + "description": "Штрихкод товара." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "quant": { + "type": "integer", + "format": "int32", + "description": "Количество товаров в одной упаковке." + }, + "is_quant_editable": { + "type": "boolean", + "description": "`true`, если количество товаров в одной упаковке можно изменить.\n" + }, + "volume_in_litres": { + "type": "number", + "format": "double", + "description": "Объём товара в литрах." + }, + "total_volume_in_litres": { + "type": "number", + "format": "double", + "description": "Объём всех товаров в литрах." + }, + "contractor_item_code": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "sfbo_attribute": { + "$ref": "#/components/schemas/v1ItemSfboAttribute" + }, + "shipment_type": { + "$ref": "#/components/schemas/v1BundleItemShipmentType" + }, + "tags": { + "type": "array", + "description": "Теги товаров из поставки или заявки на поставку.\n\nВозможные значения:\n- `EVSD_REQUIRED` — товар с сертификацией «Меркурий»;\n- `MARKING_REQUIRED` — товар с обязательной маркировкой «Честный ЗНАК»;\n- `MARKING_POSSIBLE` — товар с возможной маркировкой «Честный ЗНАК»;\n- `JEWELRY` — товар с признаком ювелирного изделия;\n- `TRACEABLE` — товар с признаком прослеживаемости;\n- `ETTN_REQUIRED` — товар с признаком прослеживаемости, для которого необходима электронная ТТН;\n- `UNDEFINED` — неизвестный тег.\n", + "items": { + "type": "string", + "enum": [ + "EVSD_REQUIRED", + "MARKING_REQUIRED", + "MARKING_POSSIBLE", + "JEWELRY", + "TRACEABLE", + "ETTN_REQUIRED", + "UNDEFINED" + ] + } + }, + "placement_zone": { + "type": "string", + "default": "UNSPECIFIED", + "enum": [ + "UNSPECIFIED", + "CLOSED_ZONE", + "DANGEROUS_GOODS", + "PRODUCTS", + "SORT", + "NON_SORT", + "OVERSIZE", + "JEWELRY", + "UNRESOLVED" + ], + "description": "Зона размещения товара.\n\nВозможные значения:\n- `UNSPECIFIED` — зона не указана;\n- `CLOSED_ZONE` — закрытая зона;\n- `DANGEROUS_GOODS` — товар 2–4 класса опасности;\n- `PRODUCTS` — продукты;\n- `SORT` — сортируемый товар;\n- `NON_SORT` — несортируемый товар;\n- `OVERSIZE` — крупногабаритный товар;\n- `JEWELRY` — ювелирные изделия;\n- `UNRESOLVED` — неизвестная зона.\n" + } + } + }, + "v1GetSupplyOrderBundleResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1ItemResponse" + }, + "description": "Список товаров в заявке на поставку." + }, + "total_count": { + "type": "integer", + "format": "int32", + "description": "Количество товаров в заявке." + }, + "has_next": { + "type": "boolean", + "description": "Признак, что в ответе вернули не все товары:\n- `true` — сделайте повторный запрос с другим значением `page` и `page_size`, чтобы получить информацию об остальных товарах;\n- `false` — ответ содержит все товары из заявки.\n" + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице." + } + } + }, + "GetSupplyOrdersListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтр.", + "properties": { + "states": { + "description": "Фильтр по статусу поставки:\n- `ORDER_STATE_DATA_FILLING` — заполнение данных;\n- `ORDER_STATE_READY_TO_SUPPLY` — готова к отгрузке;\n- `ORDER_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE` — принята на точке отгрузки;\n- `ORDER_STATE_IN_TRANSIT` — в пути;\n- `ORDER_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE` — приёмка на складе;\n- `ORDER_STATE_REPORTS_CONFIRMATION_AWAITING` — согласование актов;\n- `ORDER_STATE_REPORT_REJECTED` — спор;\n- `ORDER_STATE_COMPLETED` — завершена;\n- `ORDER_STATE_REJECTED_AT_SUPPLY_WAREHOUSE` — отказано в приёмке;\n- `ORDER_STATE_CANCELLED` — отменена.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "ORDER_STATE_DATA_FILLING", + "ORDER_STATE_READY_TO_SUPPLY", + "ORDER_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE", + "ORDER_STATE_IN_TRANSIT", + "ORDER_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE", + "ORDER_STATE_REPORTS_CONFIRMATION_AWAITING", + "ORDER_STATE_REPORT_REJECTED", + "ORDER_STATE_COMPLETED", + "ORDER_STATE_REJECTED_AT_SUPPLY_WAREHOUSE", + "ORDER_STATE_CANCELLED" + ] + } + } + } + }, + "GetSupplyOrdersListRequestPaging": { + "type": "object", + "title": "object", + "description": "Настройка отображения списка заявок.", + "properties": { + "from_supply_order_id": { + "description": "Номер поставки, с которой отобразится список заявок.", + "type": "integer", + "format": "int64" + }, + "limit": { + "description": "Количество значений в ответе:\n - максимум — 100,\n - минимум — 1.\n", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "limit" + ] + }, + "v2GetSupplyOrdersListRequest": { + "required": [ + "paging" + ], + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/GetSupplyOrdersListRequestFilter" + }, + "paging": { + "$ref": "#/components/schemas/GetSupplyOrdersListRequestPaging" + } + } + }, + "v2GetSupplyOrdersListResponse": { + "type": "object", + "title": "object", + "properties": { + "last_supply_order_id": { + "description": "Идентификатор заявки на поставку, который вы запрашивали в прошлый раз.", + "type": "integer", + "format": "int64" + }, + "supply_order_id": { + "description": "Идентификатор заявки на поставку.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v2GetSupplyOrdersRequest": { + "required": [ + "order_ids" + ], + "type": "object", + "title": "object", + "properties": { + "order_ids": { + "description": "Идентификатор заявки на поставку в системе Ozon.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v2State": { + "type": "string", + "description": "Статус поставки:\n- `ORDER_STATE_UNSPECIFIED` — статус не указан;\n- `ORDER_STATE_DATA_FILLING` — заполнение данных;\n- `ORDER_STATE_READY_TO_SUPPLY` — готова к отгрузке;\n- `ORDER_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE` — принята на точке отгрузки;\n- `ORDER_STATE_IN_TRANSIT` — в пути;\n- `ORDER_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE` — приёмка на складе;\n- `ORDER_STATE_REPORTS_CONFIRMATION_AWAITING` — согласование актов;\n- `ORDER_STATE_REPORT_REJECTED` — спор;\n- `ORDER_STATE_COMPLETED` — завершена;\n- `ORDER_STATE_REJECTED_AT_SUPPLY_WAREHOUSE` — отказано в приёмке;\n- `ORDER_STATE_CANCELLED` — отменена.\n", + "enum": [ + "ORDER_STATE_UNSPECIFIED", + "ORDER_STATE_DATA_FILLING", + "ORDER_STATE_READY_TO_SUPPLY", + "ORDER_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE", + "ORDER_STATE_IN_TRANSIT", + "ORDER_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE", + "ORDER_STATE_REPORTS_CONFIRMATION_AWAITING", + "ORDER_STATE_REPORT_REJECTED", + "ORDER_STATE_COMPLETED", + "ORDER_STATE_REJECTED_AT_SUPPLY_WAREHOUSE", + "ORDER_STATE_CANCELLED" + ] + }, + "v2Supply_state": { + "type": "string", + "description": "Статус поставки:\n- `SUPPLY_STATE_UNSPECIFIED` — статус не указан;\n- `SUPPLY_STATE_DATA_FILLING` — заполнение данных;\n- `SUPPLY_STATE_READY_TO_SUPPLY` — готова к отгрузке;\n- `SUPPLY_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE` — принята на точке отгрузки;\n- `SUPPLY_STATE_IN_TRANSIT` — в пути;\n- `SUPPLY_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE` — приёмка на складе;\n- `SUPPLY_STATE_REPORTS_CONFIRMATION_AWAITING` — согласование актов;\n- `SUPPLY_STATE_REPORT_REJECTED` — спор;\n- `SUPPLY_STATE_COMPLETED` — завершена;\n- `SUPPLY_STATE_REJECTED_AT_SUPPLY_WAREHOUSE` — отказано в приёмке;\n- `SUPPLY_STATE_CANCELLED` — отменена;\n- `SUPPLY_STATE_OVERDUE` — просрочена.\n", + "enum": [ + "SUPPLY_STATE_UNSPECIFIED", + "SUPPLY_STATE_DATA_FILLING", + "SUPPLY_STATE_READY_TO_SUPPLY", + "SUPPLY_STATE_ACCEPTED_AT_SUPPLY_WAREHOUSE", + "SUPPLY_STATE_IN_TRANSIT", + "SUPPLY_STATE_ACCEPTANCE_AT_STORAGE_WAREHOUSE", + "SUPPLY_STATE_REPORTS_CONFIRMATION_AWAITING", + "SUPPLY_STATE_REPORT_REJECTED", + "SUPPLY_STATE_COMPLETED", + "SUPPLY_STATE_REJECTED_AT_SUPPLY_WAREHOUSE", + "SUPPLY_STATE_CANCELLED", + "SUPPLY_STATE_OVERDUE" + ] + }, + "v2OrderSupplySupplyTags": { + "type": "object", + "title": "object", + "properties": { + "is_ettn_required": { + "type": "boolean", + "description": "Признак, что для поставки нужна электронная ТТН." + }, + "is_evsd_required": { + "description": "`true`, если в поставке есть товары с сертификацией в системе «Меркурий».\n", + "type": "boolean" + }, + "is_jewelry": { + "type": "boolean", + "description": "`true`, если в поставке есть ювелирные товары.\n" + }, + "is_marking_possible": { + "type": "boolean", + "description": "`true`, если в поставке есть товары, для которых возможна маркировка.\n" + }, + "is_marking_required": { + "type": "boolean", + "description": "`true`, если в поставке есть товары, для которых маркировка обязательна.\n" + }, + "is_traceable": { + "type": "boolean", + "description": "Признак, что поставка содержит прослеживаемые товары." + } + } + }, + "v2OrderSupply": { + "type": "object", + "title": "object", + "properties": { + "bundle_id": { + "type": "string", + "description": "Идентификатор состава поставки. Используется в методе [/v1/supply-order/bundle](#operation/SupplyOrderBundle)." + }, + "storage_warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада хранения." + }, + "supply_id": { + "description": "Идентификатор поставки.", + "type": "integer", + "format": "int64" + }, + "supply_state": { + "$ref": "#/components/schemas/v2Supply_state" + }, + "supply_tags": { + "description": "Метки товаров в заявке на поставку.", + "items": { + "$ref": "#/components/schemas/v2OrderSupplySupplyTags" + } + } + } + }, + "v2Timeslot": { + "type": "object", + "title": "object", + "properties": { + "from": { + "type": "string", + "description": "Начало интервала.", + "format": "date-time" + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Конец интервала." + } + } + }, + "v2Timezone": { + "type": "object", + "title": "object", + "properties": { + "iana_name": { + "description": "Название часового пояса.", + "type": "string" + }, + "offset": { + "description": "Смещение часового пояса от UTC-0 в секундах.", + "type": "string" + } + } + }, + "v2TimeslotZonedMessage": { + "type": "object", + "title": "object", + "properties": { + "timeslot": { + "description": "Интервал поставки по местному времени.", + "items": { + "$ref": "#/components/schemas/v2Timeslot" + } + }, + "timezone_info": { + "description": "Часовой пояс.", + "items": { + "$ref": "#/components/schemas/v2Timezone" + } + } + } + }, + "v2OrderTimeslot": { + "type": "object", + "title": "object", + "description": "Интервал поставки.", + "properties": { + "can_not_set_reasons": { + "description": "Причина, по которой не получается выбрать интервал поставки.", + "type": "array", + "items": { + "type": "string" + } + }, + "can_set": { + "description": "`true`, если интервал поставки можно выбрать или изменить.\n", + "type": "boolean" + }, + "is_required": { + "type": "boolean", + "description": "`true`, если характеристику указывать обязательно.\n" + }, + "value": { + "$ref": "#/components/schemas/v2TimeslotZonedMessage" + } + } + }, + "v2VehicleInfo": { + "type": "object", + "title": "object", + "properties": { + "driver_name": { + "type": "string", + "description": "Имя водителя." + }, + "driver_phone": { + "type": "string", + "description": "Телефон водителя." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "vehicle_number": { + "type": "string", + "description": "Номер автомобиля." + } + } + }, + "v2OrderVehicle": { + "type": "object", + "title": "object", + "description": "Информация о водителе и автомобиле.", + "properties": { + "can_not_set_reasons": { + "description": "Причина, по которой не получается указать или изменить данные водителя и автомобиля.", + "type": "array", + "items": { + "type": "string" + } + }, + "can_set": { + "type": "boolean", + "description": "`true`, если можно указать или изменить данные водителя и автомобиля.\n" + }, + "is_required": { + "type": "boolean", + "description": "`true`, если характеристику указывать обязательно.\n" + }, + "value": { + "description": "Данные водителя и автомобиля.", + "items": { + "$ref": "#/components/schemas/v2VehicleInfo" + } + } + } + }, + "v2Order": { + "type": "object", + "title": "object", + "properties": { + "can_cancel": { + "description": "`true`, если заявку можно отменить.\n", + "type": "boolean" + }, + "creation_date": { + "description": "Дата создания заявки на поставку.", + "type": "string" + }, + "data_filling_deadline_utc": { + "description": "Время в секундах, оставшееся на заполнение данных по поставке. Только для заявок с вРЦ.", + "type": "string", + "format": "date-time" + }, + "dropoff_warehouse_id": { + "description": "Идентификатор склада поставки.", + "type": "integer", + "format": "int64" + }, + "is_econom": { + "description": "`true`, если заявка на поставку относится к товарам «Суперэконом».\n", + "type": "boolean" + }, + "is_super_fbo": { + "description": "`true`, если продавец подключен к Super-поставкам.\n", + "type": "boolean" + }, + "is_virtual": { + "description": "`true`, если заявка на поставку виртуальная.\n", + "type": "boolean" + }, + "product_super_fbo": { + "description": "`true`, если заявка на поставку относится к Super-товарам.\n", + "type": "boolean" + }, + "state": { + "$ref": "#/components/schemas/v2State" + }, + "supplies": { + "description": "Состав заявки на поставку.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v2OrderSupply" + } + }, + "supply_order_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на поставку." + }, + "supply_order_number": { + "type": "string", + "description": "Номер заявки." + }, + "timeslot": { + "$ref": "#/components/schemas/v2OrderTimeslot" + }, + "vehicle": { + "$ref": "#/components/schemas/v2OrderVehicle" + } + } + }, + "v2Warehouse": { + "type": "object", + "title": "object", + "description": "Склад поставки.", + "properties": { + "address": { + "type": "string", + "description": "Адрес склада." + }, + "name": { + "type": "string", + "description": "Название склада." + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + } + } + }, + "v2GetSupplyOrdersResponse": { + "type": "object", + "title": "object", + "properties": { + "orders": { + "description": "Информация о заявке на поставку.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v2Order" + } + }, + "warehouses": { + "description": "Информация о складе.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v2Warehouse" + } + } + } + }, + "v1GetSupplyOrderTimeslotsRequest": { + "required": [ + "supply_order_id" + ], + "type": "object", + "title": "object", + "properties": { + "supply_order_id": { + "description": "Идентификатор заявки на поставку.", + "type": "integer", + "format": "int64" + } + } + }, + "v1SupplyOrderTimeslot": { + "required": [ + "from", + "to" + ], + "type": "object", + "title": "object", + "description": "Время интервала поставки.", + "properties": { + "from": { + "description": "Начало интервала по местному времени.", + "type": "string", + "format": "date-time" + }, + "to": { + "description": "Конец интервала по местному времени.", + "type": "string", + "format": "date-time" + } + } + }, + "v1Timezone": { + "type": "object", + "title": "object", + "properties": { + "iana_name": { + "description": "Название часового пояса.", + "type": "string" + }, + "offset": { + "description": "Смещение часового пояса от UTC-0 в секундах.", + "type": "string" + } + } + }, + "v1GetSupplyOrderTimeslotsResponse": { + "type": "object", + "properties": { + "timeslots": { + "description": "Интервалы поставки.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1SupplyOrderTimeslot" + } + }, + "timezone": { + "description": "Часовой пояс.", + "items": { + "$ref": "#/components/schemas/v1Timezone" + } + } + } + }, + "v1UpdateSupplyOrderTimeslotRequest": { + "required": [ + "supply_order_id", + "timeslot" + ], + "type": "object", + "properties": { + "supply_order_id": { + "description": "Идентификатор заявки на поставку.", + "type": "integer", + "format": "int64" + }, + "timeslot": { + "$ref": "#/components/schemas/v1SupplyOrderTimeslot" + } + } + }, + "v1UpdateTimeslotError": { + "type": "string", + "default": "UPDATE_TIMESLOT_ERROR_UNSPECIFIED", + "enum": [ + "UPDATE_TIMESLOT_ERROR_UNSPECIFIED", + "UPDATE_TIMESLOT_ERROR_INVALID_ORDER_STATE", + "UPDATE_TIMESLOT_ERROR_INCOMPATIBLE_ORDER_FLOW", + "UPDATE_TIMESLOT_ERROR_SET_TIMESLOT_DEADLINE_EXCEED", + "UPDATE_TIMESLOT_ERROR_OUT_OF_ALLOWED_RANGE", + "UPDATE_TIMESLOT_ERROR_ORDER_NOT_BELONG_CONTRACTOR", + "UPDATE_TIMESLOT_ERROR_ORDER_NOT_BELONG_COMPANY" + ] + }, + "v1UpdateSupplyOrderTimeslotResponse": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1UpdateTimeslotError" + }, + "description": "Возможные ошибки: \n - `UNSPECIFIED` — статус не указан;\n - `INVALID_ORDER_STATE` — неверный статус заказа;\n - `INCOMPATIBLE_ORDER_FLOW` — неверный статус интервала поставки;\n - `SET_TIMESLOT_DEADLINE_EXCEED` — заявка на поставку просрочена;\n - `OUT_OF_ALLOWED_RANGE` — вы ввели некорректное значение интервала поставки;\n - `ORDER_NOT_BELONG_CONTRACTOR` — заявка создана другим юридическим лицом, работать с ней не получится;\n - `ORDER_NOT_BELONG_COMPANY` — заявка не принадлежит вашему кабинету, работать с ней не получится.\n" + }, + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1GetSupplyOrderTimeslotStatusRequest": { + "required": [ + "operation_id" + ], + "type": "object", + "title": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1GetSupplyOrderTimeslotStatusResponseStatus": { + "type": "string", + "title": "object", + "default": "STATUS_UNSPECIFIED", + "enum": [ + "STATUS_UNSPECIFIED", + "STATUS_ERROR", + "STATUS_IN_PROGRESS", + "STATUS_SUCCESS" + ], + "description": "Статус данных: \n - `UNSPECIFIED` — не указан;\n - `ERROR` — ошибка;\n - `IN_PROGRESS` — устанавливается;\n - `SUCCESS` — установлен.\n" + }, + "v1GetSupplyOrderTimeslotStatusResponse": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "description": "Возможные ошибки: \n - `UNSPECIFIED` — статус не указан;\n - `INVALID_ORDER_STATE` — неверный статус заказа;\n - `INCOMPATIBLE_ORDER_FLOW` — неверный статус интервала поставки;\n - `SET_TIMESLOT_DEADLINE_EXCEED` — заявка на поставку просрочена;\n - `OUT_OF_ALLOWED_RANGE` — вы ввели некорректное значение интервала поставки;\n - `ORDER_NOT_BELONG_CONTRACTOR` — заявка создана другим юридическом лицом, работать с ней не получится;\n - `ORDER_NOT_BELONG_COMPANY` — заявка не принадлежит вашему кабинету, работать с ней не получится.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1UpdateTimeslotError" + } + }, + "status": { + "$ref": "#/components/schemas/v1GetSupplyOrderTimeslotStatusResponseStatus" + } + } + }, + "v1VehicleInfo": { + "required": [ + "driver_name", + "driver_phone", + "vehicle_model", + "vehicle_number" + ], + "type": "object", + "title": "object", + "description": "Информация о водителе и автомобиле.", + "properties": { + "driver_name": { + "type": "string", + "description": "Имя водителя." + }, + "driver_phone": { + "type": "string", + "description": "Телефон водителя." + }, + "vehicle_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "vehicle_number": { + "type": "string", + "description": "Номер автомобиля." + } + } + }, + "v1SupplyOrderPassCreateRequest": { + "required": [ + "supply_order_id", + "vehicle" + ], + "type": "object", + "properties": { + "supply_order_id": { + "description": "Идентификатор заявки на поставку.", + "type": "integer", + "format": "int64" + }, + "vehicle": { + "$ref": "#/components/schemas/v1VehicleInfo" + } + } + }, + "v1SetVehicleError": { + "title": "object", + "default": "SET_VEHICLE_ERROR_UNSPECIFIED", + "enum": [ + "SET_VEHICLE_ERROR_UNSPECIFIED", + "SET_VEHICLE_ERROR_INVALID_ORDER_STATE", + "SET_VEHICLE_ERROR_VEHICLE_NOT_REQUIRED", + "SET_VEHICLE_ERROR_ORDER_NOT_BELONG_CONTRACTOR", + "SET_VEHICLE_ERROR_ORDER_NOT_BELONG_COMPANY" + ], + "type": "string" + }, + "v1SupplyOrderPassCreateResponse": { + "type": "object", + "title": "object", + "properties": { + "error_reasons": { + "description": "Причина ошибки:\n - `UNSPECIFIED` — статус заявки не указан;\n - `INVALID_ORDER_STATE` — неверный статус заявки;\n - `VEHICLE_NOT_REQUIRED` — указывать данные автомобиля необязательно;\n - `ORDER_NOT_BELONG_CONTRACTOR` — заявка создана другим юридическом лицом, работать с ней не получится;\n - `ORDER_NOT_BELONG_COMPANY` — заявка не принадлежит вашему кабинету, работать с ней не получится.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1SetVehicleError" + } + }, + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1SupplyOrderPassStatusRequest": { + "required": [ + "operation_id" + ], + "type": "object", + "title": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1SupplyOrderPassStatusResponseStatus": { + "type": "string", + "title": "object", + "default": "Unknown", + "enum": [ + "Unknown", + "Success", + "InProgress", + "Failed" + ], + "description": "Статус ввода данных о водителе и автомобиле:\n- `Unknown` — статус неизвестен;\n- `Success` — данные указаны;\n- `InProgress` — данные обрабатываются;\n- `Failed` — не удалось обработать данные.\n" + }, + "v1SupplyOrderPassStatusResponse": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "description": "Причина ошибки:\n- `UNSPECIFIED` — статус не указан;\n- `INVALID_ORDER_STATE` — неверный статус заявки;\n- `VEHICLE_NOT_REQUIRED` — указывать данные автомобиля необязательно;\n- `ORDER_NOT_BELONG_CONTRACTOR` — заявка создана другим юридическом лицом, работать с ней не получится;\n- `ORDER_NOT_BELONG_COMPANY` — заявка не принадлежит вашему кабинету, работать с ней не получится.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1SetVehicleError" + } + }, + "result": { + "$ref": "#/components/schemas/v1SupplyOrderPassStatusResponseStatus" + } + } + }, + "SupplierAvailableWarehousesResponseCapacity": { + "type": "object", + "title": "object", + "properties": { + "start": { + "type": "string", + "format": "date-time", + "description": "Начало периода по местному времени." + }, + "end": { + "type": "string", + "format": "date-time", + "description": "Конец периода по местному времени." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Среднее количество товаров, которые склад может принять в день за период." + } + } + }, + "SupplierAvailableWarehousesResponseSchedule": { + "type": "object", + "title": "object", + "description": "Загруженность.", + "properties": { + "capacity": { + "description": "Данные о количестве поставляемых на склад товаров.", + "items": { + "$ref": "#/components/schemas/SupplierAvailableWarehousesResponseCapacity" + } + }, + "date": { + "type": "string", + "format": "date-time", + "description": "Ближайшая доступная дата для записи на поставку по местному времени." + } + } + }, + "SupplierAvailableWarehousesResponseWarehouse": { + "type": "object", + "title": "object", + "description": "Склад.", + "properties": { + "id": { + "type": "string", + "description": "Идентификатор склада." + }, + "name": { + "type": "string", + "description": "Название склада." + } + } + }, + "SupplierAvailableWarehousesResponseResult": { + "type": "object", + "title": "object", + "properties": { + "schedule": { + "$ref": "#/components/schemas/SupplierAvailableWarehousesResponseSchedule" + }, + "warehouse": { + "$ref": "#/components/schemas/SupplierAvailableWarehousesResponseWarehouse" + } + } + }, + "v1SupplierAvailableWarehousesResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат работы метода.", + "items": { + "$ref": "#/components/schemas/SupplierAvailableWarehousesResponseResult" + } + } + } + }, + "v1ClusterType": { + "type": "string", + "title": "DraftClusterList", + "description": "Тип кластера:\n- `CLUSTER_TYPE_OZON` — кластер в России,\n- `CLUSTER_TYPE_CIS` — кластер в СНГ.\n", + "enum": [ + "CLUSTER_TYPE_OZON", + "CLUSTER_TYPE_CIS" + ] + }, + "v1DraftClusterListRequest": { + "type": "object", + "properties": { + "cluster_ids": { + "type": "array", + "description": "Идентификаторы кластеров.", + "items": { + "type": "string", + "format": "int64" + } + }, + "cluster_type": { + "$ref": "#/components/schemas/v1ClusterType" + } + }, + "required": [ + "cluster_type" + ] + }, + "v1DraftClusterListResponseWarehouse": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Название склада." + }, + "type": { + "type": "string", + "enum": [ + "FULL_FILLMENT", + "EXPRESS_DARK_STORE", + "SORTING_CENTER", + "ORDERS_RECEIVING_POINT", + "CROSS_DOCK", + "DISTRIBUTION_CENTER" + ], + "description": "Тип склада:\n- `FULL_FILLMENT` — фулфилмент,\n- `EXPRESS_DARK_STORE` — даркстор,\n- `SORTING_CENTER` — сортировочный центр,\n- `ORDERS_RECEIVING_POINT` — пункт приёма заказов,\n- `CROSS_DOCK` — кросс-докинг,\n- `DISTRIBUTION_CENTER` — распределительный центр.\n" + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + } + } + }, + "DraftClusterListResponseLogisticCluster": { + "type": "object", + "properties": { + "warehouses": { + "type": "array", + "description": "Склады.", + "items": { + "$ref": "#/components/schemas/v1DraftClusterListResponseWarehouse" + } + } + } + }, + "v1DraftClusterListResponseCluster": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор кластера." + }, + "logistic_clusters": { + "type": "array", + "description": "Информация о складах кластера.", + "items": { + "$ref": "#/components/schemas/DraftClusterListResponseLogisticCluster" + } + }, + "name": { + "type": "string", + "description": "Название кластера." + }, + "type": { + "type": "string", + "enum": [ + "CLUSTER_TYPE_OZON", + "CLUSTER_TYPE_CIS" + ], + "description": "Тип кластера:\n- `CLUSTER_TYPE_OZON` — кластер в России,\n- `CLUSTER_TYPE_CIS` — кластер в СНГ.\n" + } + } + }, + "v1DraftClusterListResponse": { + "type": "object", + "properties": { + "clusters": { + "type": "array", + "description": "Кластеры.", + "items": { + "$ref": "#/components/schemas/v1DraftClusterListResponseCluster" + } + } + } + }, + "v1CreateType": { + "type": "string", + "enum": [ + "CREATE_TYPE_CROSSDOCK", + "CREATE_TYPE_DIRECT" + ], + "description": "Тип поставки:\n- `CREATE_TYPE_CROSSDOCK` — кросс-докинг,\n- `CREATE_TYPE_DIRECT` — прямая.\n" + }, + "v1DraftGetWarehouseFboListRequest": { + "type": "object", + "title": "DraftGetWarehouseFboList", + "properties": { + "filter_by_supply_type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CreateType" + }, + "description": "Тип поставки:\n- `CREATE_TYPE_CROSSDOCK` — кросс-докинг,\n- `CREATE_TYPE_DIRECT` — прямая.\n" + }, + "search": { + "type": "string", + "required": true, + "description": "Поиск по названию склада. Для поиска пунктов выдачи заказов укажите полное название.", + "minLength": 4 + } + }, + "required": [ + "filter_by_supply_type", + "search" + ] + }, + "DraftGetWarehouseFboListResponseCoordinate": { + "type": "object", + "description": "Координаты склада.", + "properties": { + "latitude": { + "type": "number", + "format": "double", + "description": "Широта." + }, + "longitude": { + "type": "number", + "format": "double", + "description": "Долгота." + } + } + }, + "DraftGetWarehouseFboListResponseWarehouseType": { + "type": "string", + "description": "Тип склада, пункта выдачи заказов или сортировочного центра:\n- `WAREHOUSE_TYPE_DELIVERY_POINT` — пункт выдачи заказов,\n- `WAREHOUSE_TYPE_ORDERS_RECEIVING_POINT` — пункт приёма заказов,\n- `WAREHOUSE_TYPE_SORTING_CENTER` — сортировочный центр,\n- `WAREHOUSE_TYPE_FULL_FILLMENT` — фулфилмент,\n- `WAREHOUSE_TYPE_CROSS_DOCK` — кросс-докинг.\n", + "enum": [ + "WAREHOUSE_TYPE_DELIVERY_POINT", + "WAREHOUSE_TYPE_ORDERS_RECEIVING_POINT", + "WAREHOUSE_TYPE_SORTING_CENTER", + "WAREHOUSE_TYPE_FULL_FILLMENT", + "WAREHOUSE_TYPE_CROSS_DOCK" + ] + }, + "DraftGetWarehouseFboListResponseSearch": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "Адрес склада." + }, + "coordinates": { + "$ref": "#/components/schemas/DraftGetWarehouseFboListResponseCoordinate" + }, + "name": { + "type": "string", + "description": "Название склада." + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада, пункта выдачи заказов или сортировочного центра." + }, + "warehouse_type": { + "$ref": "#/components/schemas/DraftGetWarehouseFboListResponseWarehouseType" + } + } + }, + "v1DraftGetWarehouseFboListResponse": { + "type": "object", + "properties": { + "search": { + "type": "array", + "description": "Результат поиска складов.", + "items": { + "$ref": "#/components/schemas/DraftGetWarehouseFboListResponseSearch" + } + } + } + }, + "DraftCreateRequestItem": { + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "required": [ + "quantity", + "sku" + ] + }, + "v1DraftCreateRequest": { + "type": "object", + "title": "DraftCreate messages", + "properties": { + "cluster_ids": { + "type": "array", + "description": "Идентификаторы кластеров. Можно получить с помощью метода [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList).", + "items": { + "type": "string", + "format": "int64" + } + }, + "drop_off_point_warehouse_id": { + "type": "integer", + "format": "int64", + "title": "заполняется только для \"type\": \"crossdock\"", + "description": "Идентификатор точки отгрузки — пункта выдачи заказов или сортировочного центра. Можно получить с помощью метода [/v1/warehouse/fbo/list](#operation/SupplyDraftAPI_DraftGetWarehouseFboList).\nТолько для типа поставки `type = CREATE_TYPE_CROSSDOCK`.\n" + }, + "items": { + "type": "array", + "description": "Товары.", + "maxItems": 5000, + "items": { + "$ref": "#/components/schemas/DraftCreateRequestItem" + } + }, + "type": { + "$ref": "#/components/schemas/v1CreateType" + } + }, + "required": [ + "items", + "type" + ] + }, + "v1DraftCreateResponse": { + "type": "object", + "properties": { + "operation_id": { + "type": "string", + "description": "Идентификатор черновика заявки на поставку." + } + } + }, + "v1DraftCreateInfoRequest": { + "type": "object", + "properties": { + "operation_id": { + "type": "string", + "description": "Уникальный идентификатор генерации черновика заявки на поставку.\n" + } + }, + "required": [ + "operation_id" + ] + }, + "v1BundleId": { + "type": "object", + "properties": { + "bundle_id": { + "type": "string", + "description": "Идентификатор комплекта. Используйте параметр в методе [/v1/supply-order/bundle](#operation/SupplyOrderBundle), чтобы получить подробную информацию.\n" + }, + "is_docless": { + "type": "boolean", + "description": "Признак необходимости передачи УПД:\n- `true` — документы не требуются,\n- `false` — требуются.\n" + } + } + }, + "v1WarehouseScoringInvalidReason": { + "type": "string", + "default": "WAREHOUSE_SCORING_INVALID_REASON_UNSPECIFIED", + "enum": [ + "WAREHOUSE_SCORING_INVALID_REASON_PARTIAL_MATRIX_AVAILABLE", + "WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_MATRIX", + "WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_RANK", + "WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_ROUTE", + "WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_TIMESLOT_FOR_DROP_OFF_POINT", + "WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_TIMESLOT_FOR_STORAGE_WAREHOUSE", + "WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_TIMESLOT_FOR_BOTH_WAREHOUSE" + ], + "description": "Причина недоступности склада:\n - `WAREHOUSE_SCORING_INVALID_REASON_PARTIAL_MATRIX_AVAILABLE` — склад не может принять часть товаров;\n - `WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_MATRIX` — склад не может принять все товары;\n - `WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_RANK` — склад недоступен из-за рейтинга;\n - `WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_ROUTE` — нет доступного маршрута;\n - `WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_TIMESLOT_FOR_DROP_OFF_POINT` — нет таймслотов на точке отгрузки;\n - `WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_TIMESLOT_FOR_STORAGE_WAREHOUSE` — нет таймслотов на складе поставки;\n - `WAREHOUSE_SCORING_INVALID_REASON_NOT_AVAILABLE_TIMESLOT_FOR_BOTH_WAREHOUSE` — нет таймслотов на складах отгрузки и поставки.\n" + }, + "v1WarehouseScoringStatus": { + "type": "string", + "default": "WAREHOUSE_SCORING_STATUS_FULL_AVAILABLE", + "enum": [ + "WAREHOUSE_SCORING_STATUS_FULL_AVAILABLE", + "WAREHOUSE_SCORING_STATUS_PARTIAL_AVAILABLE", + "WAREHOUSE_SCORING_STATUS_NOT_AVAILABLE" + ], + "description": "Статус склада:\n- `WAREHOUSE_SCORING_STATUS_FULL_AVAILABLE` — доступен,\n- `WAREHOUSE_SCORING_STATUS_PARTIAL_AVAILABLE` — частично доступен,\n- `WAREHOUSE_SCORING_STATUS_NOT_AVAILABLE` — недоступен.\n" + }, + "v1WarehouseStatus": { + "type": "object", + "description": "Доступность склада.", + "properties": { + "invalid_reason": { + "$ref": "#/components/schemas/v1WarehouseScoringInvalidReason" + }, + "is_available": { + "type": "boolean", + "description": "Доступность склада:\n- `true` — доступен,\n- `false` — недоступен.\n" + }, + "state": { + "$ref": "#/components/schemas/v1WarehouseScoringStatus" + } + } + }, + "v1SupplyWarehouse": { + "type": "object", + "description": "Склады для поставки.", + "properties": { + "address": { + "type": "string", + "description": "Адрес склада." + }, + "name": { + "type": "string", + "description": "Название склада." + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + } + } + }, + "draftv1Warehouse": { + "type": "object", + "properties": { + "bundle_ids": { + "type": "array", + "description": "Товарный состав в виде комплекта.", + "items": { + "$ref": "#/components/schemas/v1BundleId" + } + }, + "restricted_bundle_id": { + "type": "string", + "description": "Комплект товаров, которые не попадают в поставку. Используйте параметр в методе [/v1/supply-order/bundle](#operation/SupplyOrderBundle), чтобы получить подробную информацию.\n" + }, + "status": { + "$ref": "#/components/schemas/v1WarehouseStatus" + }, + "supply_warehouse": { + "$ref": "#/components/schemas/v1SupplyWarehouse" + }, + "total_rank": { + "type": "integer", + "format": "int32", + "description": "Ранг склада в кластере." + }, + "total_score": { + "type": "number", + "format": "double", + "description": "Рейтинг склада." + }, + "travel_time_days": { + "type": "integer", + "format": "int64", + "description": "Предполагаемый срок доставки.", + "nullable": true + } + } + }, + "draftv1Cluster": { + "type": "object", + "properties": { + "cluster_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор кластера." + }, + "cluster_name": { + "type": "string", + "description": "Название кластера." + }, + "warehouses": { + "type": "array", + "description": "Склады.", + "items": { + "$ref": "#/components/schemas/draftv1Warehouse" + } + } + } + }, + "v1ItemsValidation": { + "type": "object", + "properties": { + "reasons": { + "type": "array", + "description": "Причины ошибки.", + "items": { + "type": "string" + } + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v1CalculationError": { + "type": "object", + "properties": { + "error_message": { + "type": "string", + "description": "Возможные ошибки:\n- `vdc_is_not_supported` — не поддерживается тип поставки вРЦ;\n- `drop_off_point_warehouse_is_required` — не передано значение `drop_off_point_warehouse_id`;\n- `empty_items_list` — передан пустой список `items`;\n- `items_count_more_than_max` — превышено количество `sku`;\n- `invalid_shipment_type` — неверный тип черновика;\n- `unknown_cluster_ids` — кластер с таким `id` не существует;\n- `items_validation` — ошибки валидации товарного состава;\n- `drop_off_point_does_not_exist` — точка отгрузки с таким `id` не существует;\n- `drop_off_point_has_no_timeslots` — нет доступных таймслотов на точке отгрузки;\n- `total_volume_in_litres_invalid` — объём поставляемых товаров слишком большой для этой точки;\n- `xdock_in_delivery_point_disabled_for_seller` — поставка кросс-докингом через пункт выдачи заказов недоступна для продавца.\n" + }, + "items_validation": { + "type": "array", + "description": "Ошибки валидации.", + "items": { + "$ref": "#/components/schemas/v1ItemsValidation" + } + }, + "unknown_cluster_ids": { + "type": "array", + "description": "Неизвестные идентификаторы кластеров.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1CalculationStatus": { + "type": "string", + "default": "CALCULATION_STATUS_FAILED", + "enum": [ + "CALCULATION_STATUS_FAILED", + "CALCULATION_STATUS_SUCCESS", + "CALCULATION_STATUS_IN_PROGRESS", + "CALCULATION_STATUS_EXPIRED" + ], + "description": "Статус создания черновика заявки на поставку:\n- `CALCULATION_STATUS_FAILED` — не удалось создать черновик,\n- `CALCULATION_STATUS_SUCCESS` — черновик создан,\n- `CALCULATION_STATUS_IN_PROGRESS` — черновик создаётся,\n- `CALCULATION_STATUS_EXPIRED` — истёк срок действия черновика.\n" + }, + "v1DraftCreateInfoResponse": { + "type": "object", + "properties": { + "clusters": { + "type": "array", + "description": "Кластеры.", + "items": { + "$ref": "#/components/schemas/draftv1Cluster" + } + }, + "draft_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор черновика заявки на поставку." + }, + "errors": { + "type": "array", + "description": "Ошибки.", + "items": { + "$ref": "#/components/schemas/v1CalculationError" + } + }, + "status": { + "$ref": "#/components/schemas/v1CalculationStatus" + } + } + }, + "v1DraftTimeslotInfoRequest": { + "type": "object", + "title": "DraftTimeslotInfo messages", + "properties": { + "date_from": { + "type": "string", + "format": "date-time", + "description": "Дата начала нужного периода доступных таймслотов." + }, + "date_to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания нужного периода доступных таймслотов.\n\nМаксимальный период — 28 дней с текущей даты.\n" + }, + "draft_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор черновика заявки на поставку." + }, + "warehouse_ids": { + "type": "array", + "description": "Идентификаторы складов, для которых нужно получить таймслоты.", + "maxItems": 10, + "items": { + "type": "string", + "format": "int64" + } + } + }, + "required": [ + "date_from", + "date_to", + "draft_id", + "warehouse_ids" + ] + }, + "v1DayTimeSlot": { + "type": "object", + "description": "Таймслот поставки.", + "properties": { + "from_in_timezone": { + "type": "string", + "format": "date-time", + "description": "Начало таймслота." + }, + "to_in_timezone": { + "type": "string", + "format": "date-time", + "description": "Конец таймслота." + } + } + }, + "v1Day": { + "type": "object", + "properties": { + "date_in_timezone": { + "type": "string", + "format": "date-time", + "description": "Дата таймслотов." + }, + "timeslots": { + "type": "array", + "description": "Таймслоты.", + "items": { + "$ref": "#/components/schemas/v1DayTimeSlot" + } + } + } + }, + "v1DropOffWarehouse": { + "type": "object", + "properties": { + "current_time_in_timezone": { + "type": "string", + "format": "date-time", + "description": "Текущее время в часовом поясе склада." + }, + "days": { + "type": "array", + "description": "Таймслоты по датам.", + "items": { + "$ref": "#/components/schemas/v1Day" + } + }, + "drop_off_warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + }, + "warehouse_timezone": { + "type": "string", + "description": "Часовой пояс склада." + } + } + }, + "v1DraftTimeslotInfoResponse": { + "type": "object", + "properties": { + "drop_off_warehouse_timeslots": { + "type": "array", + "description": "Таймслоты складов.", + "items": { + "$ref": "#/components/schemas/v1DropOffWarehouse" + } + }, + "requested_date_from": { + "type": "string", + "format": "date-time", + "description": "Дата начала интересующего периода." + }, + "requested_date_to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания интересующего периода." + } + } + }, + "v1DraftSupplyCreateRequest": { + "type": "object", + "title": "DraftSupplyCreate", + "properties": { + "draft_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор черновика заявки на поставку." + }, + "timeslot": { + "$ref": "#/components/schemas/v1DayTimeSlot" + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада размещения. Можно получить с помощью метода [/v1/draft/create/info](#operation/SupplyDraftAPI_DraftCreateInfo)." + } + }, + "required": [ + "draft_id", + "warehouse_id" + ] + }, + "v1DraftSupplyCreateResponse": { + "type": "object", + "properties": { + "operation_id": { + "type": "string", + "description": "Идентификатор заявки на поставку." + } + } + }, + "v1DraftSupplyCreateStatusRequest": { + "type": "object", + "title": "DraftSupplyCreateStatus", + "properties": { + "operation_id": { + "type": "string", + "description": "Идентификатор заявки на поставку." + } + }, + "required": [ + "operation_id" + ] + }, + "DraftSupplyCreateStatusResponseResult": { + "type": "object", + "description": "Идентификаторы заявок на поставку.", + "properties": { + "order_ids": { + "type": "array", + "description": "Идентификаторы заявок на поставку.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1DraftSupplyCreateStatus": { + "type": "string", + "default": "DraftSupplyCreateStatusUnknown", + "enum": [ + "DraftSupplyCreateStatusUnknown", + "DraftSupplyCreateStatusSuccess", + "DraftSupplyCreateStatusFailed", + "DraftSupplyCreateStatusInProgress" + ], + "description": "Статус создания заявки на поставку:\n - `DraftSupplyCreateStatusUnknown` — неизвестный,\n - `DraftSupplyCreateStatusSuccess` — создана,\n - `DraftSupplyCreateStatusFailed` — не создана,\n - `DraftSupplyCreateStatusInProgress` — создаётся.\n" + }, + "v1DraftSupplyCreateStatusResponse": { + "type": "object", + "properties": { + "error_messages": { + "type": "array", + "description": "Ошибки создания заявок.", + "items": { + "type": "string" + } + }, + "result": { + "$ref": "#/components/schemas/DraftSupplyCreateStatusResponseResult" + }, + "status": { + "$ref": "#/components/schemas/v1DraftSupplyCreateStatus" + } + } + }, + "ValueItem": { + "type": "object", + "properties": { + "barcode": { + "description": "Штрихкод товара.", + "type": "string" + }, + "expires_at": { + "description": "Годен до.", + "type": "string", + "format": "date-time" + }, + "quant": { + "description": "Размер кванта.", + "type": "integer", + "format": "int32" + }, + "quantity": { + "description": "Количество товара.", + "type": "integer", + "format": "int32" + } + } + }, + "ValueCargoType": { + "required": [ + "type" + ], + "type": "string", + "description": "Тип грузоместа: \n - `BOX` — коробка.\n - `PALLET` — палета.\n", + "default": "BOX", + "enum": [ + "BOX", + "PALLET" + ] + }, + "v1CargoesCreateRequestCargoValue": { + "required": [ + "type" + ], + "type": "object", + "description": "Информация о грузоместе.", + "properties": { + "items": { + "maxItems": 5000, + "description": "Информация о товарах в грузоместе.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueItem" + } + }, + "type": { + "$ref": "#/components/schemas/ValueCargoType" + } + } + }, + "v1CargoesCreateRequestCargo": { + "type": "object", + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "description": "Уникальный ключ для идентификации грузоместа.", + "type": "string" + }, + "value": { + "$ref": "#/components/schemas/v1CargoesCreateRequestCargoValue" + } + } + }, + "v1CargoesCreateRequest": { + "type": "object", + "required": [ + "cargoes", + "supply_id" + ], + "properties": { + "cargoes": { + "description": "Информация о грузоместах. Вы можете передать не больше 40 палет или 30 коробок.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CargoesCreateRequestCargo" + } + }, + "delete_current_version": { + "description": "`true`, если нужно удалить предыдущие грузоместа.\n", + "type": "boolean" + }, + "supply_id": { + "description": "Идентификатор поставки. Можно получить с помощью метода [/v2/supply-order/get](#operation/SupplyOrderAPI_GetSupplyOrdersV2). Нужное значение — в параметре ответа `orders.supplies.supply_id`.", + "type": "integer", + "format": "int64" + } + } + }, + "CargoesCreateErrorsErrorReason": { + "type": "string", + "default": "INVALID_STATE", + "enum": [ + "INVALID_STATE", + "VALIDATION_FAILED", + "WAREHOUSE_LIMITS_EXCEED", + "SUPPLY_NOT_BELONG_CONTRACTOR", + "SUPPLY_NOT_BELONG_COMPANY", + "IS_FINALIZED", + "SKU_DISTRIBUTION_DISABLED", + "SUPPLY_IS_NOT_EMPTY", + "OPERATION_NOT_FOUND", + "OPERATION_FAILED" + ] + }, + "ItemValidationErrorType": { + "type": "string", + "description": "Тип ошибки:\n - `SUPPLY_ITEM_NOT_FOUND` — товар не найден.\n - `DUPLICATED_SUPPLY_ITEM` — найден дубликат товара.\n - `BEFORE_DEADLINE` — некорректный срок годности.\n - `SAME_BARCODES` — у разных SKU одинаковые штрихкоды.\n - `SAME_ARTICLES` — у разных SKU одинаковые артикулы.\n - `NOT_UNIQUE_SKU_BY_PRODUCT` — одинаковый SKU в грузоместе используется для разных товаров.\n - `QUANTITY_NOT_DIVISIBLE_BY_QUANT` — количество SKU в грузоместе не кратно кванту.\n - `NOT_SINGLE_PALLET_SKU_IN_PALLET_CARGO` — в грузоместе отсутствует палетная SKU.\n - `NOT_ONE_QUANT_PALLET_SKU` — в квантовом палетном грузоместе должен быть только один квант.\n - `NOT_ECONOM_SKU` — в эконом-поставке указан не эконом-SKU.\n - `QUANTITY_LESS_ONE` — количество SKU в эконом-поставке меньше 1.\n - `SUPPLY_ITEM_WITH_QUANT_NOT_FOUND` — товар не найден по артикулу, штрихкоду и размеру кванта.\n", + "default": "SUPPLY_ITEM_NOT_FOUND", + "enum": [ + "SUPPLY_ITEM_NOT_FOUND", + "DUPLICATED_SUPPLY_ITEM", + "BEFORE_DEADLINE", + "SAME_BARCODES", + "SAME_ARTICLES", + "NOT_UNIQUE_SKU_BY_PRODUCT", + "QUANTITY_NOT_DIVISIBLE_BY_QUANT", + "NOT_SINGLE_PALLET_SKU_IN_PALLET_CARGO", + "NOT_ONE_QUANT_PALLET_SKU", + "NOT_ECONOM_SKU", + "QUANTITY_LESS_ONE", + "SUPPLY_ITEM_WITH_QUANT_NOT_FOUND" + ] + }, + "CargoesCreateErrorsItemValidation": { + "type": "object", + "properties": { + "barcode": { + "description": "Штрихкод товара.", + "type": "string" + }, + "cargo_key": { + "description": "Ключ грузоместа.", + "type": "string" + }, + "quant": { + "description": "Размер кванта.", + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/ItemValidationErrorType" + } + } + }, + "v1CargoesCreateErrors": { + "type": "object", + "description": "Ошибки.", + "properties": { + "error_reasons": { + "description": "Причина ошибки:\n - `INVALID_STATE` — недопустимое состояние поставки.\n - `VALIDATION_FAILED` — ошибки валидации.\n - `WAREHOUSE_LIMITS_EXCEED` — превышены лимиты склада.\n - `SUPPLY_NOT_BELONG_CONTRACTOR` — поставка не относится к указанному контрагенту.\n - `SUPPLY_NOT_BELONG_COMPANY` — поставка не относится к указанной компании.\n - `IS_FINALIZED` — редактирование поставки недоступно.\n - `SKU_DISTRIBUTION_DISABLED` — распределение состава недоступно.\n - `SUPPLY_IS_NOT_EMPTY` — поставка содержит распределение состава.\n - `OPERATION_NOT_FOUND` — операция не найдена.\n - `OPERATION_FAILED` — ошибка при обработке операции.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoesCreateErrorsErrorReason" + } + }, + "items_validation": { + "description": "Ошибки валидации.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoesCreateErrorsItemValidation" + } + } + } + }, + "v1CargoesCreateResponse": { + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + }, + "errors": { + "$ref": "#/components/schemas/v1CargoesCreateErrors" + } + } + }, + "v1CargoesCreateInfoRequest": { + "required": [ + "operation_id" + ], + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "CargoesCreateInfoResponseResultCargoValue": { + "type": "object", + "description": "Информация о грузоместе.", + "properties": { + "cargo_id": { + "description": "Идентификатор грузоместа.", + "type": "integer", + "format": "int64" + } + } + }, + "CargoesCreateInfoResponseResultCargo": { + "type": "object", + "properties": { + "key": { + "description": "Ключ грузоместа.", + "type": "string" + }, + "value": { + "$ref": "#/components/schemas/CargoesCreateInfoResponseResultCargoValue" + } + } + }, + "CargoesCreateInfoResponseResult": { + "type": "object", + "description": "Результат запроса.", + "properties": { + "cargoes": { + "description": "Информация о грузоместах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoesCreateInfoResponseResultCargo" + } + } + } + }, + "v1CargoesCreateInfoResponseStatus": { + "type": "string", + "description": "Статус формирования грузомест:\n - `SUCCESS` — успешно.\n - `IN_PROGRESS` — формируются.\n - `FAILED` — при формировании грузомест произошла ошибка.\n", + "default": "SUCCESS", + "enum": [ + "SUCCESS", + "IN_PROGRESS", + "FAILED" + ] + }, + "v1CargoesCreateInfoResponse": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/CargoesCreateInfoResponseResult" + }, + "status": { + "$ref": "#/components/schemas/v1CargoesCreateInfoResponseStatus" + }, + "errors": { + "$ref": "#/components/schemas/v1CargoesCreateErrors" + } + } + }, + "v1CargoesDeleteRequest": { + "type": "object", + "properties": { + "cargo_ids": { + "type": "array", + "description": "Список идентификаторов грузомест, которые нужно удалить.\n\nМаксимум 70 значений.\n", + "items": { + "type": "string", + "format": "int64" + } + }, + "supply_id": { + "description": "Идентификатор поставки.", + "type": "integer", + "format": "int64" + } + } + }, + "v1CargoesDeleteResponseErrorCargoErrorReasonErrorReasonEnum": { + "type": "string", + "enum": [ + "CARGO_NOT_FOUND" + ] + }, + "v1CargoesDeleteResponseErrorCargoErrorReason": { + "type": "object", + "properties": { + "cargo_id": { + "description": "Идентификатор грузоместа.", + "type": "integer", + "format": "int64" + }, + "error_reasons": { + "description": "Список ошибок грузоместа.\n\nЕсли значение `CARGO_NOT_FOUND`, грузоместо не найдено.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CargoesDeleteResponseErrorCargoErrorReasonErrorReasonEnum" + } + } + } + }, + "v1CargoesDeleteResponseErrorSupplyErrorReasonEnum": { + "type": "string", + "enum": [ + "SUPPLY_NOT_FOUND", + "CANT_DELETE_ALL_CARGOES", + "SUPPLY_DOES_NOT_BELONG_TO_THE_CONTRACTOR", + "SUPPLY_DOES_NOT_BELONG_TO_THE_COMPANY", + "SUPPLY_CARGOES_IS_FINALIZED", + "SUPPLY_CARGOES_LOCKED", + "OPERATION_NOT_FOUND" + ] + }, + "v1CargoesDeleteResponseError": { + "type": "object", + "description": "Список ошибок, которые возникли при удалении грузомест.", + "properties": { + "cargo_error_reasons": { + "type": "array", + "description": "Ошибки при удалении грузомест.", + "items": { + "$ref": "#/components/schemas/v1CargoesDeleteResponseErrorCargoErrorReason" + } + }, + "supply_error_reasons": { + "type": "array", + "description": "Список ошибок поставки:\n- `SUPPLY_NOT_FOUND` — поставка не найдена,\n- `CANT_DELETE_ALL_CARGOES` — нельзя удалять все грузоместа,\n- `SUPPLY_DOES_NOT_BELONG_TO_THE_CONTRACTOR` — не принадлежит вашему юридическому лицу,\n- `SUPPLY_DOES_NOT_BELONG_TO_THE_COMPANY` — не принадлежит вашему кабинету,\n- `SUPPLY_CARGOES_IS_FINALIZED` — грузоместа поставки нельзя редактировать,\n- `SUPPLY_CARGOES_LOCKED` — другой процесс блокирует редактирование грузомест поставки,\n- `OPERATION_NOT_FOUND` — операция не найдена.\n", + "items": { + "$ref": "#/components/schemas/v1CargoesDeleteResponseErrorSupplyErrorReasonEnum" + } + } + } + }, + "v1CargoesDeleteResponse": { + "type": "object", + "properties": { + "errors": { + "$ref": "#/components/schemas/v1CargoesDeleteResponseError" + }, + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1CargoesDeleteStatusRequest": { + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1CargoesDeleteStatusResponseErrorCargoErrorReasonErrorReasonEnum": { + "type": "string", + "enum": [ + "CARGO_NOT_FOUND" + ] + }, + "v1CargoesDeleteStatusResponseErrorCargoErrorReason": { + "type": "object", + "properties": { + "cargo_id": { + "description": "Идентификатор грузоместа.", + "type": "integer", + "format": "int64" + }, + "error_reasons": { + "description": "Список ошибок грузоместа.\n\nЕсли значение `CARGO_NOT_FOUND`, грузоместо не найдено.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CargoesDeleteStatusResponseErrorCargoErrorReasonErrorReasonEnum" + } + } + } + }, + "v1CargoesDeleteStatusResponseErrorSupplyErrorReasonEnum": { + "type": "string", + "enum": [ + "SUPPLY_NOT_FOUND", + "CANT_DELETE_ALL_CARGOES", + "SUPPLY_DOES_NOT_BELONG_TO_THE_CONTRACTOR", + "SUPPLY_DOES_NOT_BELONG_TO_THE_COMPANY", + "SUPPLY_CARGOES_IS_FINALIZED", + "SUPPLY_CARGOES_LOCKED", + "OPERATION_NOT_FOUND" + ] + }, + "v1CargoesDeleteStatusResponseError": { + "type": "object", + "description": "Список ошибок, которые возникли при удалении грузомест.", + "properties": { + "cargo_error_reasons": { + "type": "array", + "description": "Ошибки при удалении грузомест.", + "items": { + "$ref": "#/components/schemas/v1CargoesDeleteStatusResponseErrorCargoErrorReason" + } + }, + "supply_error_reasons": { + "type": "array", + "description": "Список ошибок поставки:\n- `SUPPLY_NOT_FOUND` — поставка не найдена,\n- `CANT_DELETE_ALL_CARGOES` — нельзя удалять все грузоместа,\n- `SUPPLY_DOES_NOT_BELONG_TO_THE_CONTRACTOR` — не принадлежит вашему юридическому лицу,\n- `SUPPLY_DOES_NOT_BELONG_TO_THE_COMPANY` — не принадлежит вашему кабинету,\n- `SUPPLY_CARGOES_IS_FINALIZED` — грузоместа поставки нельзя редактировать,\n- `SUPPLY_CARGOES_LOCKED` — другой процесс блокирует редактирование грузомест поставки,\n- `OPERATION_NOT_FOUND` — операция не найдена.\n", + "items": { + "$ref": "#/components/schemas/v1CargoesDeleteStatusResponseErrorSupplyErrorReasonEnum" + } + } + } + }, + "CargoesDeleteStatusResponseStatusEnum": { + "type": "string", + "description": "Статус удаления грузоместа.\n\nВозможные статусы:\n- `SUCCESS` — грузоместо удалено,\n- `IN_PROGRESS` — грузоместо в процессе удаления,\n- `ERROR` — возникла ошибка при удалении грузоместа.\n", + "enum": [ + "SUCCESS", + "IN_PROGRESS", + "ERROR" + ] + }, + "v1CargoesDeleteStatusResponse": { + "type": "object", + "properties": { + "errors": { + "$ref": "#/components/schemas/v1CargoesDeleteStatusResponseError" + }, + "status": { + "$ref": "#/components/schemas/CargoesDeleteStatusResponseStatusEnum" + } + } + }, + "v1CargoesRulesGetRequest": { + "type": "object", + "properties": { + "supply_ids": { + "type": "array", + "description": "Список идентификаторов поставок в заявке.\n\nМаксимум 100 идентификаторов.\n", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "CargoesPresentRuleCargoCountPerTypeEnum": { + "type": "string", + "description": "Тип грузоместа:\n- `BOX` — коробка,\n- `PALLET` — палета.\n", + "enum": [ + "BOX", + "PALLET" + ] + }, + "CargoesPresentRuleCargoCountPerType": { + "type": "object", + "title": "Количество грузомест каждого типа", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Количество грузомест." + }, + "type": { + "$ref": "#/components/schemas/CargoesPresentRuleCargoCountPerTypeEnum" + } + } + }, + "SupplyCheckCargoesPresentRule": { + "type": "object", + "description": "Правило указания грузомест.", + "properties": { + "cargo_count_per_type": { + "type": "array", + "description": "Количество грузомест каждого типа.", + "items": { + "$ref": "#/components/schemas/CargoesPresentRuleCargoCountPerType" + } + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Общее количество грузомест." + }, + "satisfied": { + "type": "boolean", + "description": "`true`, если грузоместа указаны.\n" + } + } + }, + "SupplyCheckEditDeadlineExpireRule": { + "type": "object", + "description": "Правило крайнего срока редактирования грузомест.", + "properties": { + "is_applicable": { + "type": "boolean", + "description": "`true`, если правило применимо к текущей поставке.\n" + }, + "is_required": { + "type": "boolean", + "description": "`true`, если правило обязательно для текущей поставки.\n" + }, + "satisfied": { + "type": "boolean", + "description": "`true`, если крайний срок для редактирования не наступил.\n" + } + } + }, + "SupplyCheckExpireDatePresentedRule": { + "type": "object", + "description": "Правило указания сроков годности для товаров.", + "properties": { + "count_sku_with_expiration": { + "type": "integer", + "format": "int32", + "description": "Количество SKU с корректным сроком годности." + }, + "count_sku_with_expiration_filled": { + "type": "integer", + "format": "int32", + "description": "Количество SKU, для которых обязателен срок годности." + }, + "is_applicable": { + "type": "boolean", + "description": "`true`, если правило применимо к текущей поставке.\n" + }, + "is_required": { + "type": "boolean", + "description": "`true`, если правило обязательно для текущей поставки.\n" + }, + "satisfied": { + "type": "boolean", + "description": "`true`, если сроки годности указаны корректно.\n" + } + } + }, + "SupplyCheckIsValidDistributionRule": { + "type": "object", + "description": "Правило совпадения составов грузомест с составом поставки.", + "properties": { + "count_distributed_sku": { + "type": "integer", + "format": "int32", + "description": "Количество SKU, которые совпадают с поставкой." + }, + "count_sku_total": { + "type": "integer", + "format": "int32", + "description": "Общее количество SKU." + }, + "is_applicable": { + "type": "boolean", + "description": "`true`, если правило применимо к текущей поставке.\n" + }, + "percents_int": { + "type": "integer", + "format": "int32", + "description": "Процент совпадения состава грузомест с составом поставки." + }, + "satisfied": { + "type": "boolean", + "description": "`true`, если состав грузомест совпадает с составом поставки.\n" + } + } + }, + "SupplyCheckPackageUnitWithDistributionRule": { + "type": "object", + "description": "Правило заполнения состава грузомест.", + "properties": { + "count_all": { + "type": "integer", + "format": "int32", + "description": "Общее количество грузомест." + }, + "count_with_distribution": { + "type": "integer", + "format": "int32", + "description": "Количество заполненных грузомест." + }, + "is_applicable": { + "type": "boolean", + "description": "`true`, если правило применимо к текущей поставке.\n" + }, + "is_required": { + "type": "boolean", + "description": "`true`, если правило обязательно для текущей поставки.\n" + }, + "satisfied": { + "type": "boolean", + "description": "`true`, если указаны составы для всех грузомест.\n" + } + } + }, + "SupplyCheckPlacementZoneRule": { + "type": "object", + "description": "Правило распределения товаров в грузоместах по зонам размещения.", + "properties": { + "count_cargoes_all": { + "type": "integer", + "format": "int32", + "description": "Количество грузомест." + }, + "count_cargoes_with_mono_placement_zone": { + "type": "integer", + "format": "int32", + "description": "Количество грузомест с распределением по зонам размещения." + }, + "is_applicable": { + "type": "boolean", + "description": "`true`, если правило применимо к текущей поставке.\n" + }, + "satisfied": { + "type": "boolean", + "description": "`true`, если товары во всех грузоместах распределены по зонам размещения.\n" + } + } + }, + "CargoesRulesGetResponseSupplyCheck": { + "type": "object", + "description": "Чек-лист правил заполнения грузомест.", + "properties": { + "cargoes_presents_rule": { + "$ref": "#/components/schemas/SupplyCheckCargoesPresentRule" + }, + "edit_deadline_expire_rule": { + "$ref": "#/components/schemas/SupplyCheckEditDeadlineExpireRule" + }, + "expire_dates_presented_rule": { + "$ref": "#/components/schemas/SupplyCheckExpireDatePresentedRule" + }, + "is_valid_distribution_rule": { + "$ref": "#/components/schemas/SupplyCheckIsValidDistributionRule" + }, + "package_units_with_distribution_rule": { + "$ref": "#/components/schemas/SupplyCheckPackageUnitWithDistributionRule" + }, + "placement_zones_rule": { + "$ref": "#/components/schemas/SupplyCheckPlacementZoneRule" + }, + "supply_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор поставки." + } + } + }, + "v1CargoesRulesGetResponse": { + "type": "object", + "properties": { + "supply_check_lists": { + "type": "array", + "description": "Список чек-листов с правилами заполнения грузомест по поставкам.", + "items": { + "$ref": "#/components/schemas/CargoesRulesGetResponseSupplyCheck" + } + } + } + }, + "v1CargoesLabelCreateRequestCargo": { + "type": "object", + "properties": { + "cargo_id": { + "description": "Идентификатор грузоместа.", + "type": "integer", + "format": "int64" + } + } + }, + "v1CargoesLabelCreateRequest": { + "required": [ + "supply_id" + ], + "type": "object", + "properties": { + "cargoes": { + "description": "Информация о грузоместах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CargoesLabelCreateRequestCargo" + } + }, + "supply_id": { + "description": "Идентификатор поставки.", + "type": "integer", + "format": "int64" + } + } + }, + "v1CargoesLabelCreateErrorsErrorReason": { + "type": "string", + "default": "INVALID_STATE", + "enum": [ + "INVALID_STATE", + "OPERATION_NOT_FOUND", + "OPERATION_FAILED", + "SUPPLY_NOT_BELONG_CONTRACTOR", + "SUPPLY_NOT_BELONG_COMPANY", + "SUPPLY_IS_EMPTY", + "CARGOES_NOT_FOUND" + ] + }, + "v1CargoesLabelCreateErrors": { + "type": "object", + "description": "Ошибки.", + "properties": { + "error_reasons": { + "description": "Причина ошибки:\n - `INVALID_STATE` — недопустимое состояние поставки.\n - `OPERATION_NOT_FOUND` — операция не найдена.\n - `OPERATION_FAILED` — операция завершилась с ошибкой.\n - `SUPPLY_NOT_BELONG_CONTRACTOR` — контрагент не соответствует поставке.\n - `SUPPLY_NOT_BELONG_COMPANY` — компания не соответствует поставке.\n - `SUPPLY_IS_EMPTY` — поставка без грузомест.\n - `CARGOES_NOT_FOUND` — грузоместа не найдены.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CargoesLabelCreateErrorsErrorReason" + } + } + } + }, + "v1CargoesLabelCreateResponse": { + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + }, + "errors": { + "$ref": "#/components/schemas/v1CargoesLabelCreateErrors" + } + } + }, + "v1CargoesLabelGetRequest": { + "required": [ + "operation_id" + ], + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1CargoesLabelGetResponseResult": { + "type": "object", + "description": "Информация об этикетках.", + "properties": { + "file_guid": { + "description": "Идентификатор для получения файла с этикетками.", + "type": "string" + } + } + }, + "v1CargoesLabelGetResponseStatus": { + "type": "string", + "description": "Статус формирования этикеток:\n- `SUCCESS` — готовы.\n- `IN_PROGRESS` — формируются.\n- `FAILED` — ошибка при формировании.\n", + "default": "SUCCESS", + "enum": [ + "SUCCESS", + "IN_PROGRESS", + "FAILED" + ] + }, + "v1CargoesLabelGetResponse": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1CargoesLabelGetResponseResult" + }, + "status": { + "$ref": "#/components/schemas/v1CargoesLabelGetResponseStatus" + }, + "errors": { + "$ref": "#/components/schemas/v1CargoesLabelCreateErrors" + } + } + }, + "v1SupplyOrderCancelRequest": { + "type": "object", + "properties": { + "order_id": { + "description": "Идентификатор заявки на поставку.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "order_id" + ] + }, + "v1SupplyOrderCancelResponse": { + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции на отмену заявки.", + "type": "string" + } + } + }, + "v1SupplyOrderCancelStatusRequest": { + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции на отмену заявки на поставку.", + "type": "string" + } + }, + "required": [ + "operation_id" + ] + }, + "SupplyOrderCancelStatusResponseCancelOrderError": { + "type": "string", + "enum": [ + "INVALID_ORDER_STATE", + "ORDER_IS_VIRTUAL", + "ORDER_DOES_NOT_BELONG_TO_CONTRACTOR", + "ORDER_DOES_NOT_BELONG_TO_COMPANY", + "OTHER_ASYNCHRONOUS_OPERATION_IN_PROGRESS" + ] + }, + "CancelSupplyResultsCancelSupplyError": { + "type": "string", + "enum": [ + "INVALID_SUPPLY_STATE", + "SUPPLY_DOES_NOT_BELONG_TO_CONTRACTOR", + "SUPPLY_DOES_NOT_BELONG_TO_COMPANY", + "SUPPLY_DOES_NOT_BELONG_TO_ORDER", + "SUPPLY_BELONGS_TO_VIRTUAL_ORDER", + "OTHER_ASYNCHRONOUS_OPERATION_IN_PROGRESS" + ] + }, + "SupplyOrderCancelStatusResponseCancelSupplyResults": { + "type": "object", + "properties": { + "error_reasons": { + "description": "Причина, по которой не удалось отменить поставки:\n - `INVALID_SUPPLY_STATE` — неверный статус поставки.\n - `SUPPLY_DOES_NOT_BELONG_TO_CONTRACTOR` — поставка не принадлежит юридическому лицу.\n - `SUPPLY_DOES_NOT_BELONG_TO_COMPANY` — поставка не принадлежит продавцу.\n - `SUPPLY_DOES_NOT_BELONG_TO_ORDER` — поставка не принадлежит заявке на поставку.\n - `SUPPLY_BELONGS_TO_VIRTUAL_ORDER` — поставка принадлежит виртуальной заявке на поставку.\n - `OTHER_ASYNCHRONOUS_OPERATION_IN_PROGRESS` — поставка в процессе отмены.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/CancelSupplyResultsCancelSupplyError" + } + }, + "is_supply_cancelled": { + "description": "`true`, если поставка отменена.\n", + "type": "boolean" + }, + "supply_id": { + "description": "Идентификатор поставки.", + "type": "integer", + "format": "int64" + } + } + }, + "SupplyOrderCancelStatusResponseResult": { + "type": "object", + "description": "Информация об отмене заявки на поставку.", + "properties": { + "is_order_cancelled": { + "description": "`true`, если заявка на поставку отменена.\n", + "type": "boolean" + }, + "supplies": { + "description": "Список отменённых поставок.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplyOrderCancelStatusResponseCancelSupplyResults" + } + } + } + }, + "v1SupplyOrderCancelStatusResponseStatus": { + "type": "string", + "enum": [ + "SUCCESS", + "IN_PROGRESS", + "ERROR" + ], + "description": "Статус отмены заявки на поставку. Возможные значения:\n- `SUCCESS` — заявка отменена.\n- `IN_PROGRESS` — заявки в процессе отмены.\n- `ERROR` — ошибка.\n" + }, + "v1SupplyOrderCancelStatusResponse": { + "type": "object", + "properties": { + "error_reasons": { + "type": "array", + "description": "Причина, по которой не удалось отменить заявку на поставку:\n - `INVALID_ORDER_STATE` — неверный статус заявки на поставку.\n - `ORDER_IS_VIRTUAL` — заявка виртуальная. \n - `ORDER_DOES_NOT_BELONG_TO_CONTRACTOR` — заявка на поставку не принадлежит вашему юридическому лицу.\n - `ORDER_DOES_NOT_BELONG_TO_COMPANY` — заявка на поставку не принадлежит продавцу. \n - `OTHER_ASYNCHRONOUS_OPERATION_IN_PROGRESS` — заявка на поставку в процессе отмены.\n", + "items": { + "$ref": "#/components/schemas/SupplyOrderCancelStatusResponseCancelOrderError" + } + }, + "result": { + "$ref": "#/components/schemas/SupplyOrderCancelStatusResponseResult" + }, + "status": { + "$ref": "#/components/schemas/v1SupplyOrderCancelStatusResponseStatus" + } + } + }, + "v1SupplyOrderContentUpdateRequestItem": { + "type": "object", + "properties": { + "quant": { + "type": "integer", + "format": "int32", + "description": "Размер кванта." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v1SupplyOrderContentUpdateRequest": { + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Новый товарный состав заявки на поставку.\n\nМаксимум 5000 товаров.\n", + "items": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateRequestItem" + } + }, + "order_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заказа." + }, + "supply_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор поставки." + } + } + }, + "v1SupplyOrderContentUpdateResponseErrorEnum": { + "type": "string", + "enum": [ + "INVALID_DRAFT_BUNDLE_ID", + "SOME_SERVICE_ERROR", + "HAS_UTD", + "ORDER_SKU_LIMIT", + "SAME_SKU", + "SUPPLY_LOCKED", + "INBOUND_NO_CAPACITY", + "INBOUND_LOCK", + "SUPPLY_CONTENT_NOT_VALID", + "SUPPLY_BELONG_TO_ANOTHER_CONTRACTOR", + "SUPPLY_BELONG_TO_ANOTHER_COMPANY", + "INCORRECT_SUPPLY_STATE", + "INCORRECT_SUPPLY_SOURCE", + "INCORRECT_STORAGE_WAREHOUSE", + "DEADLINE", + "INACTIVE_CONTRACT", + "QUANTITY_OUT_OF_RANGE_BOTTOM", + "QUANTITY_OUT_OF_RANGE_UPPER", + "EMPTY_CONTENT", + "NO_SUPPLY_PRODUCT_BUNDLE_ID", + "ONLY_DOCLESS_ALLOWED", + "INVALID_VOLUME", + "SUPPLY_IS_VIRTUAL", + "ORDER_LOCKED", + "CONTRACT_IS_NOT_FOUND", + "COMPANY_DOES_NOT_BELONGS_TO_CONTRACTOR", + "ORDER_IS_NOT_FOUND", + "ORDER_DOES_NOT_BELONGS_TO_COMPANY", + "SUPPLY_IS_NOT_FOUND", + "SUPPLY_DOES_NOT_BELONGS_TO_ORDER", + "UTD_IS_UPLOADED", + "STORAGE_WAREHOUSE_IS_NOT_WMS", + "CONTRACT_IS_NOT_VALID_FOR_HANDLING_ORDERS", + "ORDER_DOES_NOT_BELONG_TO_CONTRACTOR" + ] + }, + "v1SupplyOrderContentUpdateResponse": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Ошибки при редактировании товарного состава:\n- `INVALID_DRAFT_BUNDLE_ID`, `SOME_SERVICE_ERROR`, `ORDER_IS_NOT_FOUND`, `SUPPLY_IS_NOT_FOUND`, `SUPPLY_DOES_NOT_BELONGS_TO_ORDER` — ошибка при редактировании поставки.\n- `HAS_UTD`, `UTD_IS_UPLOADED` — документы в системе ЭДО не удалены. Аннулируйте документы в системе ЭДО. Когда отредактируете состав, сформируйте и подпишите новые документы.\n- `ORDER_SKU_LIMIT` — количество товаров в поставке должно быть меньше или равно 5000.\n- `SAME_SKU` — товарный состав поставки остался прежним.\n- `SUPPLY_LOCKED` — обновление товарного состава в процессе, попробуйте позже.\n- `INBOUND_NO_CAPACITY` — на складе недостаточно места для поставки.\n- `INBOUND_LOCK`, `ORDER_LOCKED`, `STORAGE_WAREHOUSE_IS_NOT_WMS` — нельзя редактировать товарный состав.\n- `SUPPLY_CONTENT_NOT_VALID` — в составе поставки есть товары, которые склад не может принять.\n- `SUPPLY_BELONG_TO_ANOTHER_CONTRACTOR`, `COMPANY_DOES_NOT_BELONGS_TO_CONTRACTOR`, `ORDER_DOES_NOT_BELONG_TO_CONTRACTOR` — заявка на поставку не принадлежит вашему юридическому лицу.\n- `SUPPLY_BELONG_TO_ANOTHER_COMPANY`, `ORDER_DOES_NOT_BELONGS_TO_COMPANY` — заявка на поставку не принадлежит вашему кабинету.\n- `INCORRECT_SUPPLY_STATE` — нельзя изменить поставку в этом статусе.\n- `INCORRECT_SUPPLY_SOURCE` — нельзя изменить поставку с этим источником данных.\n- `INCORRECT_STORAGE_WAREHOUSE` — нельзя изменить поставку с этим складом хранения.\n- `NO_SUPPLY_PRODUCT_BUNDLE_ID` — отсутствует идентификатор товарного состава поставки.\n- `ONLY_DOCLESS_ALLOWED` — нельзя редактировать поставку при наличии документов.\n- `INVALID_VOLUME` — некорректный объём поставки.\n- `SUPPLY_IS_VIRTUAL` — нельзя редактировать виртуальную поставку.\n- `DEADLINE` — нельзя изменить поставку за час до таймслота.\n- `INACTIVE_CONTRACT` — нельзя редактировать состав поставки с истекшим договором.\n- `QUANTITY_OUT_OF_RANGE_BOTTOM` — количество экземпляров каждого товара должно быть больше 0.\n- `QUANTITY_OUT_OF_RANGE_UPPER` — количество экземпляров каждого товара должно быть меньше или равно 1 000 000.\n- `EMPTY_CONTENT` — не сможем принять пустую поставку, добавьте товары.\n- `CONTRACT_IS_NOT_FOUND`, `CONTRACT_IS_NOT_VALID_FOR_HANDLING_ORDERS` — в этом личном кабинете нельзя изменить поставку.\n", + "items": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateResponseErrorEnum" + } + }, + "operation_id": { + "type": "string", + "description": "Идентификатор операции." + } + } + }, + "v1SupplyOrderContentUpdateStatusRequest": { + "type": "object", + "properties": { + "operation_id": { + "description": "Идентификатор операции.", + "type": "string" + } + } + }, + "v1SupplyOrderContentUpdateStatusResponseErrorEnum": { + "type": "string", + "enum": [ + "INVALID_DRAFT_BUNDLE_ID", + "SOME_SERVICE_ERROR", + "HAS_UTD", + "ORDER_SKU_LIMIT", + "SAME_SKU", + "SUPPLY_LOCKED", + "INBOUND_NO_CAPACITY", + "INBOUND_LOCK", + "SUPPLY_CONTENT_NOT_VALID", + "SUPPLY_BELONG_TO_ANOTHER_CONTRACTOR", + "SUPPLY_BELONG_TO_ANOTHER_COMPANY", + "INCORRECT_SUPPLY_STATE", + "INCORRECT_SUPPLY_SOURCE", + "INCORRECT_STORAGE_WAREHOUSE", + "DEADLINE", + "INACTIVE_CONTRACT", + "QUANTITY_OUT_OF_RANGE_BOTTOM", + "QUANTITY_OUT_OF_RANGE_UPPER", + "EMPTY_CONTENT", + "NO_SUPPLY_PRODUCT_BUNDLE_ID", + "ONLY_DOCLESS_ALLOWED", + "INVALID_VOLUME", + "SUPPLY_IS_VIRTUAL", + "ORDER_LOCKED" + ] + }, + "SupplyOrderContentUpdateStatusResponseStatusEnum": { + "type": "string", + "description": "Статус редактирования товарного состава поставки.\n\nВозможные статусы:\n- `SUCCESS` — товарный состав изменён,\n- `IN_PROGRESS` — товарный состав в процессе изменения,\n- `ERROR` — возникла ошибка при изменении товарного состава.\n", + "enum": [ + "SUCCESS", + "IN_PROGRESS", + "ERROR" + ] + }, + "v1SupplyOrderContentUpdateStatusResponse": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Список ошибок при редактировании товарного состава:\n- `INVALID_DRAFT_BUNDLE_ID`, `SOME_SERVICE_ERROR` — ошибка при редактировании поставки.\n- `HAS_UTD` — документы в системе ЭДО не удалены. Аннулируйте документы в системе ЭДО. Когда отредактируете состав, сформируйте и подпишите новые документы.\n- `ORDER_SKU_LIMIT` — количество товаров в поставке должно быть меньше или равно 5000.\n- `SAME_SKU` — товарный состав поставки остался прежним.\n- `SUPPLY_LOCKED` — обновление товарного состава в процессе, попробуйте позже.\n- `INBOUND_NO_CAPACITY` — на складе недостаточно места для поставки.\n- `INBOUND_LOCK`, `ORDER_LOCKED` — нельзя редактировать товарный состав.\n- `SUPPLY_CONTENT_NOT_VALID` — в составе поставки есть товары, которые склад не может принять.\n- `SUPPLY_BELONG_TO_ANOTHER_CONTRACTOR` — заявка на поставку не принадлежит вашему юридическому лицу.\n- `SUPPLY_BELONG_TO_ANOTHER_COMPANY` — заявка на поставку не принадлежит вашему кабинету.\n- `INCORRECT_SUPPLY_STATE` — нельзя изменить поставку в этом статусе.\n- `INCORRECT_SUPPLY_SOURCE` — нельзя изменить поставку с этим источником данных.\n- `INCORRECT_STORAGE_WAREHOUSE` — нельзя изменить поставку с этим складом хранения.\n- `NO_SUPPLY_PRODUCT_BUNDLE_ID` — отсутствует идентификатор товарного состава поставки.\n- `ONLY_DOCLESS_ALLOWED` — нельзя редактировать поставку при наличии документов.\n- `INVALID_VOLUME` — некорректный объём поставки.\n- `SUPPLY_IS_VIRTUAL` — нельзя редактировать виртуальную поставку.\n- `DEADLINE` — нельзя изменить поставку за час до таймслота.\n- `INACTIVE_CONTRACT` — нельзя редактировать состав поставки с истекшим договором.\n- `QUANTITY_OUT_OF_RANGE_BOTTOM` — количество экземпляров каждого товара должно быть больше 0.\n- `QUANTITY_OUT_OF_RANGE_UPPER` — количество экземпляров каждого товара должно быть меньше или равно 1 000 000.\n- `EMPTY_CONTENT` — не сможем принять пустую поставку, добавьте товары.\n", + "items": { + "$ref": "#/components/schemas/v1SupplyOrderContentUpdateStatusResponseErrorEnum" + } + }, + "status": { + "$ref": "#/components/schemas/SupplyOrderContentUpdateStatusResponseStatusEnum" + } + } + }, + "v5FbsPostingProductExemplarCreateOrGetV5Request": { + "type": "object", + "properties": { + "posting_number": { + "description": "Номер отправления.", + "type": "string" + } + }, + "required": [ + "posting_number" + ] + }, + "v5FbsPostingProductExemplarCreateOrGetV5ResponseProductExemplar": { + "type": "object", + "properties": { + "exemplar_id": { + "description": "Идентификатор экземпляра.", + "type": "integer", + "format": "int64" + }, + "gtd": { + "description": "Номер грузовой таможенной декларации (ГТД).", + "type": "string" + }, + "is_gtd_absent": { + "description": "Признак того, что не указан номер грузовой таможенной декларации (ГТД).", + "type": "boolean" + }, + "is_rnpt_absent": { + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ).", + "type": "boolean" + }, + "mandatory_mark": { + "description": "Обязательная маркировка «Честный ЗНАК».", + "type": "string" + }, + "rnpt": { + "description": "Регистрационный номер партии товара (РНПТ).", + "type": "string" + }, + "jw_uin": { + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия.", + "type": "string" + } + } + }, + "v5FbsPostingProductExemplarCreateOrGetV5ResponseProduct": { + "type": "object", + "properties": { + "exemplars": { + "description": "Информация об экземплярах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarCreateOrGetV5ResponseProductExemplar" + } + }, + "is_gtd_needed": { + "description": "Признак того, что необходимо передать номер грузовой таможенной декларации (ГТД) для продукта и отправления.", + "type": "boolean" + }, + "is_mandatory_mark_needed": { + "description": "Признак того, что необходимо передать маркировку «Честный ЗНАК».", + "type": "boolean" + }, + "is_rnpt_needed": { + "description": "Признак того, что необходимо передать номер партии товара (РНПТ).", + "type": "boolean" + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — `product_id`.", + "type": "integer", + "format": "int64" + }, + "quantity": { + "description": "Количество экземпляров.", + "type": "integer", + "format": "int32" + } + } + }, + "v5FbsPostingProductExemplarCreateOrGetV5Response": { + "type": "object", + "properties": { + "multi_box_qty": { + "description": "Количество коробок, в которые упакован товар.", + "type": "integer", + "format": "int32" + }, + "posting_number": { + "description": "Номер отправления.", + "type": "string" + }, + "products": { + "description": "Список товаров.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarCreateOrGetV5ResponseProduct" + } + } + } + }, + "postingv4FbsPostingProductExemplarValidateRequestProductExemplar": { + "required": [ + "mandatory_mark" + ], + "type": "object", + "title": "object", + "properties": { + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "mandatory_mark": { + "type": "string", + "description": "Обязательная маркировка «Честный ЗНАК»." + }, + "jw_uin": { + "type": "array of strings", + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия." + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + } + } + }, + "postingv4FbsPostingProductExemplarValidateRequestProduct": { + "required": [ + "product_id" + ], + "type": "object", + "title": "object", + "properties": { + "exemplars": { + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/postingv4FbsPostingProductExemplarValidateRequestProductExemplar" + } + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — `product_id`.", + "type": "integer", + "format": "int64" + } + } + }, + "postingv4FbsPostingProductExemplarValidateRequest": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/postingv4FbsPostingProductExemplarValidateRequestProduct" + } + } + } + }, + "FbsPostingProductExemplarValidateResponseFbsPostingProductExemplarValidateResultProductExemplar": { + "type": "object", + "title": "object", + "properties": { + "errors": { + "description": "Ошибки валидации экземпляра.", + "items": { + "type": "string" + } + }, + "gtd": { + "description": "Номер грузовой таможенной декларации (ГТД).", + "type": "string" + }, + "mandatory_mark": { + "description": "Обязательная маркировка «Честный ЗНАК».", + "type": "string" + }, + "jw_uin": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия." + }, + "valid": { + "description": "Результат прохождения проверки. `true`, если код экземпляра соответствует требованиям.", + "type": "boolean" + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + } + } + }, + "FbsPostingProductExemplarValidateResponseFbsPostingProductExemplarValidateResultProduct": { + "type": "object", + "title": "object", + "properties": { + "error": { + "type": "string", + "description": "Код ошибки." + }, + "exemplars": { + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/FbsPostingProductExemplarValidateResponseFbsPostingProductExemplarValidateResultProductExemplar" + } + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — `product_id`.", + "type": "integer", + "format": "int64" + }, + "valid": { + "description": "Результат прохождения проверки. `true`, если коды всех экземпляров соответствуют требованиям.", + "type": "boolean" + } + } + }, + "FbsPostingProductExemplarValidateResponseFbsPostingProductExemplarValidateResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "products": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/FbsPostingProductExemplarValidateResponseFbsPostingProductExemplarValidateResultProduct" + } + } + } + }, + "postingv4FbsPostingProductExemplarValidateResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/FbsPostingProductExemplarValidateResponseFbsPostingProductExemplarValidateResult" + } + } + }, + "fbsv4SetProductExemplarRequestProductExemplar": { + "type": "object", + "title": "object", + "properties": { + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "is_gtd_absent": { + "type": "boolean", + "description": "Признак того, что не указан номер таможенной декларации." + }, + "mandatory_mark": { + "type": "string", + "description": "Обязательная маркировка «Честный ЗНАК»." + }, + "jw_uin": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия." + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + }, + "is_rnpt_absent": { + "type": "boolean", + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ)." + } + } + }, + "fbsv4SetProductExemplarRequestProduct": { + "type": "object", + "title": "object", + "properties": { + "exemplars": { + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/fbsv4SetProductExemplarRequestProductExemplar" + } + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор FBS товара в системе Ozon — SKU." + } + } + }, + "fbsv4SetProductExemplarRequest": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/fbsv4SetProductExemplarRequestProduct" + } + } + } + }, + "fbsv4SetProductExemplarResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат обработки запроса. `true`, если запрос обработан успешно.", + "type": "boolean" + } + } + }, + "v5FbsPostingProductExemplarSetV5RequestProductExemplar": { + "type": "object", + "properties": { + "exemplar_id": { + "description": "Идентификатор экземпляра.", + "type": "integer", + "format": "int64" + }, + "gtd": { + "description": "Номер грузовой таможенной декларации (ГТД).", + "type": "string" + }, + "is_gtd_absent": { + "description": "Признак того, что не указан номер грузовой таможенной декларации (ГТД).", + "type": "boolean" + }, + "is_rnpt_absent": { + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ).", + "type": "boolean" + }, + "mandatory_mark": { + "description": "Обязательная маркировка «Честный ЗНАК».", + "type": "string" + }, + "rnpt": { + "description": "Регистрационный номер партии товара (РНПТ).", + "type": "string" + }, + "jw_uin": { + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия.", + "type": "string" + } + }, + "required": [ + "exemplar_id" + ] + }, + "v5FbsPostingProductExemplarSetV5RequestProduct": { + "type": "object", + "properties": { + "exemplars": { + "description": "Информация об экземплярах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarSetV5RequestProductExemplar" + } + }, + "is_gtd_needed": { + "description": "Признак того, что необходимо передать номер грузовой таможенной декларации (ГТД) для продукта и отправления.", + "type": "boolean" + }, + "is_mandatory_mark_needed": { + "description": "Признак того, что необходимо передать маркировку «Честный ЗНАК».", + "type": "boolean" + }, + "is_rnpt_needed": { + "description": "Признак того, что необходимо передать номер партии товара (РНПТ).", + "type": "boolean" + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — `product_id`.", + "type": "integer", + "format": "int64" + }, + "quantity": { + "description": "Количество экземпляров.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "product_id" + ] + }, + "v5FbsPostingProductExemplarSetV5Request": { + "type": "object", + "properties": { + "multi_box_qty": { + "description": "Количество коробок, в которые упакован товар.", + "type": "integer", + "format": "int32" + }, + "posting_number": { + "description": "Номер отправления.", + "type": "string", + "required": true + }, + "products": { + "description": "Список товаров.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarSetV5RequestProduct" + } + } + }, + "required": [ + "products", + "posting_number" + ] + }, + "v5FbsPostingProductExemplarSetV5Response": { + "type": "object", + "properties": { + "result": { + "description": "Результат обработки запроса. `true`, если запрос обработан успешно.", + "type": "boolean" + } + } + }, + "fbsv4GetProductExemplarStatusRequest": { + "required": [ + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "fbsv4GetProductExemplarStatusResponseProductExemplar": { + "type": "object", + "title": "object", + "properties": { + "exemplar_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор экземпляра." + }, + "gtd": { + "description": "Номер грузовой таможенной декларации (ГТД).", + "type": "string" + }, + "gtd_check_status": { + "type": "string", + "description": "Статус проверки грузовой таможенной декларации." + }, + "gtd_error_codes": { + "description": "Коды ошибок при проверке грузовой таможенной декларации.", + "items": { + "type": "string" + } + }, + "is_gtd_absent": { + "type": "boolean", + "description": "Признак того, что не указан номер таможенной декларации." + }, + "jw_uin": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия." + }, + "jw_uin_check_status": { + "type": "string", + "description": "Статус проверки уникального идентификационного номера (УИН) ювелирного изделия." + }, + "jw_uin_error_codes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Коды ошибок при проверке уникального идентификационного номера (УИН) ювелирного изделия." + }, + "mandatory_mark": { + "type": "string", + "description": "Обязательная маркировка «Честный ЗНАК»." + }, + "mandatory_mark_check_status": { + "type": "string", + "description": "Статус проверки маркировки «Честный ЗНАК»:\n- `processing` — маркировка обрабатывается.\n- `passed` — проверка пройдена.\n- `failed` — проверка не пройдена.\n" + }, + "mandatory_mark_error_codes": { + "description": "Коды ошибок при проверке маркировки «Честный ЗНАК».", + "items": { + "type": "string" + } + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + }, + "rnpt_check_status": { + "type": "string", + "description": "Статус проверки регистрационного номера партии товара." + }, + "rnpt_error_codes": { + "items": { + "type": "string" + }, + "description": "Коды ошибок при проверке регистрационного номера партии товара." + }, + "is_rnpt_absent": { + "type": "boolean", + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ)." + } + } + }, + "fbsv4GetProductExemplarStatusResponseProduct": { + "type": "object", + "title": "object", + "properties": { + "exemplars": { + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/fbsv4GetProductExemplarStatusResponseProductExemplar" + } + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "fbsv4GetProductExemplarStatusResponse": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/fbsv4GetProductExemplarStatusResponseProduct" + } + }, + "status": { + "description": "Статус проверки всех экземпляров и доступности сборки:\n- `ship_available` — сборка доступна,\n- `ship_not_available` — сборка недоступна,\n- `validation_in_process` — экземпляры на проверке.\n", + "type": "string" + } + } + }, + "FbsPostingShipV4RequestPackageProduct": { + "required": [ + "product_id", + "quantity" + ], + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество экземпляров." + } + } + }, + "FbsPostingShipV4RequestPackage": { + "required": [ + "products" + ], + "type": "object", + "title": "object", + "properties": { + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FbsPostingShipV4RequestPackageProduct" + }, + "description": "Список товаров в отправлении." + } + } + }, + "FbsPostingShipV4RequestWith": { + "type": "object", + "title": "object", + "description": "Дополнительная информация.", + "properties": { + "additional_data": { + "type": "boolean", + "description": "Чтобы получить дополнительную информацию, передайте `true`." + } + } + }, + "fbsv4FbsPostingShipV4Request": { + "required": [ + "packages", + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "packages": { + "items": { + "$ref": "#/components/schemas/FbsPostingShipV4RequestPackage" + }, + "description": "Список упаковок. Каждая упаковка содержит список отправлений, на которые делится заказ." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "with": { + "$ref": "#/components/schemas/FbsPostingShipV4RequestWith" + } + } + }, + "fbsv4PostingProductDetailWithoutDimensions": { + "type": "object", + "title": "object", + "properties": { + "mandatory_mark": { + "description": "Обязательная маркировка «Честный ЗНАК».", + "items": { + "type": "string" + } + }, + "name": { + "description": "Название товара.", + "type": "string" + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "price": { + "type": "string", + "description": "Цена." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара в отправлении." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Cовпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + } + } + }, + "FbsPostingShipV4ResponseShipAdditionalData": { + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "description": "Список товаров в отправлении.", + "items": { + "$ref": "#/components/schemas/fbsv4PostingProductDetailWithoutDimensions" + } + } + } + }, + "fbsv4FbsPostingShipV4Response": { + "type": "object", + "title": "object", + "properties": { + "additional_data": { + "description": "Дополнительная информация об отправлениях.", + "items": { + "$ref": "#/components/schemas/FbsPostingShipV4ResponseShipAdditionalData" + } + }, + "result": { + "description": "Результат сборки отправлений.", + "items": { + "type": "string" + } + } + } + }, + "v4FbsPostingShipPackageV4RequestProduct": { + "type": "object", + "properties": { + "exemplarsIds": { + "description": "Идентификаторы экземпляров товара.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "product_id": { + "description": "Идентификатор товара в системе продавца — SKU.", + "type": "integer", + "format": "int64" + }, + "quantity": { + "description": "Количество экземпляров.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "product_id", + "quantity" + ] + }, + "v4FbsPostingShipPackageV4Request": { + "type": "object", + "properties": { + "posting_number": { + "description": "Номер отправления.", + "type": "string" + }, + "products": { + "description": "Список товаров в отправлении.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v4FbsPostingShipPackageV4RequestProduct" + } + } + }, + "required": [ + "posting_number" + ] + }, + "v4FbsPostingShipPackageV4Response": { + "type": "object", + "properties": { + "result": { + "description": "Номера отправлений, сформированные после сборки.", + "type": "string" + } + } + }, + "ExemplarsMarks": { + "type": "object", + "properties": { + "mark": { + "type": "string", + "description": "Значение кода маркировки." + }, + "mark_type": { + "type": "string", + "description": "Тип кода маркировки:\n - `mandatory_mark` — обязательная маркировка «Честный ЗНАК»;\n - `jw_uin` — уникальный идентификационный номер (УИН) ювелирного изделия.\n" + } + } + }, + "FbsPostingProductExemplarSetV6RequestExemplars": { + "type": "object", + "properties": { + "exemplar_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор экземпляра." + }, + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "is_gtd_absent": { + "type": "boolean", + "description": "Признак того, что не указан номер грузовой таможенной декларации (ГТД)." + }, + "is_rnpt_absent": { + "type": "boolean", + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ)." + }, + "marks": { + "description": "Ошибки при проверке контрольных идентификационных знаков (КИЗ).", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExemplarsMarks" + } + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + } + } + }, + "FbsPostingProductExemplarSetV6RequestProducts": { + "type": "object", + "properties": { + "exemplars": { + "type": "array", + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/FbsPostingProductExemplarSetV6RequestExemplars" + } + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v6FbsPostingProductExemplarSetV6Request": { + "type": "object", + "properties": { + "multi_box_qty": { + "type": "integer", + "format": "int32", + "description": "Количество коробок, в которые упакован товар." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "type": "array", + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/FbsPostingProductExemplarSetV6RequestProducts" + } + } + } + }, + "v6FbsPostingProductExemplarCreateOrGetV6Request": { + "type": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "ExemplarMark": { + "type": "object", + "properties": { + "mark": { + "type": "string", + "description": "Значение кода маркировки." + }, + "mark_type": { + "type": "string", + "description": "Тип кода маркировки:\n - `mandatory_mark` — обязательная маркировка «Честный ЗНАК»;\n - `jw_uin` — уникальный идентификационный номер (УИН) ювелирного изделия.\n" + } + } + }, + "ProductExemplar": { + "type": "object", + "properties": { + "exemplar_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор экземпляра." + }, + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "is_gtd_absent": { + "type": "boolean", + "description": "Признак того, что не указан номер грузовой таможенной декларации (ГТД)." + }, + "is_rnpt_absent": { + "type": "boolean", + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ)." + }, + "marks": { + "type": "array", + "description": "Ошибки при проверке контрольных идентификационных знаков (КИЗ).", + "items": { + "$ref": "#/components/schemas/ExemplarMark" + } + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + } + } + }, + "FbsPostingProductExemplarCreateOrGetV6ResponseProduct": { + "type": "object", + "properties": { + "exemplars": { + "type": "array", + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/ProductExemplar" + } + }, + "is_gtd_needed": { + "type": "boolean", + "description": "Признак того, что необходимо передать номер грузовой таможенной декларации (ГТД) для продукта и отправления." + }, + "is_jw_uin_needed": { + "type": "boolean", + "description": "Признак того, что необходимо передать уникальный идентификационный номер ювелирного изделия (УИН)." + }, + "is_mandatory_mark_needed": { + "type": "boolean", + "description": "Признак того, что необходимо передать маркировку «Честный ЗНАК»." + }, + "is_mandatory_mark_possible": { + "type": "boolean", + "description": "Признак того, что возможно заполнить маркировку «Честный ЗНАК»." + }, + "is_rnpt_needed": { + "type": "boolean", + "description": "Признак того, что необходимо передать номер партии товара (РНПТ)." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество экземпляров." + } + } + }, + "v6FbsPostingProductExemplarCreateOrGetV6Response": { + "type": "object", + "properties": { + "multi_box_qty": { + "type": "integer", + "format": "int32", + "description": "Количество коробок, в которые упакован товар." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "type": "array", + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/FbsPostingProductExemplarCreateOrGetV6ResponseProduct" + } + } + } + }, + "v5FbsPostingProductExemplarStatusV5Request": { + "type": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "v5FbsPostingProductExemplarStatusV5ResponseProductExemplarMark": { + "type": "object", + "properties": { + "check_status": { + "type": "string", + "description": "Статус проверки." + }, + "error_codes": { + "description": "Ошибки при проверке контрольных идентификационных знаков (КИЗ).", + "type": "array", + "items": { + "type": "string" + } + }, + "mark": { + "type": "string", + "description": "Значение кода маркировки." + }, + "mark_type": { + "type": "string", + "description": "Тип кода маркировки:\n - `mandatory_mark` — обязательная маркировка «Честный ЗНАК»;\n - `jw_uin` — уникальный идентификационный номер (УИН) ювелирного изделия.\n" + } + } + }, + "v5FbsPostingProductExemplarStatusV5ResponseProductExemplar": { + "type": "object", + "properties": { + "exemplar_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор экземпляра." + }, + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "gtd_check_status": { + "type": "string", + "description": "Статус проверки грузовой таможенной декларации." + }, + "gtd_error_codes": { + "type": "array", + "description": "Коды ошибок при проверке грузовой таможенной декларации.", + "items": { + "type": "string" + } + }, + "is_gtd_absent": { + "type": "boolean", + "description": "Признак того, что не указан номер таможенной декларации (ГТД)." + }, + "is_rnpt_absent": { + "type": "boolean", + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ)." + }, + "marks": { + "type": "array", + "description": "Список контрольных идентификационных знаков (КИЗ) в одном экземпляре.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarStatusV5ResponseProductExemplarMark" + } + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + }, + "rnpt_check_status": { + "type": "string", + "description": "Статус проверки регистрационного номера партии товара." + }, + "rnpt_error_codes": { + "type": "array", + "description": "Коды ошибок при проверке регистрационного номера партии товара.", + "items": { + "type": "string" + } + } + } + }, + "v5FbsPostingProductExemplarStatusV5ResponseProduct": { + "type": "object", + "properties": { + "exemplars": { + "type": "array", + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarStatusV5ResponseProductExemplar" + } + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v5FbsPostingProductExemplarStatusV5Response": { + "type": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "type": "array", + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarStatusV5ResponseProduct" + } + }, + "status": { + "type": "string", + "description": "Статус проверки всех экземпляров и доступности сборки:\n - `ship_available` — сборка доступна,\n - `ship_not_available` — сборка недоступна,\n - `validation_in_process` — экземпляры на проверке.\n" + } + } + }, + "v5FbsPostingProductExemplarValidateV5RequestProductExemplarMark": { + "type": "object", + "properties": { + "mark": { + "type": "string", + "description": "Значение кода маркировки." + }, + "mark_type": { + "type": "string", + "description": "Тип кода маркировки:\n - `mandatory_mark` — обязательная маркировка «Честный ЗНАК»;\n - `jw_uin` — уникальный идентификационный номер (УИН) ювелирного изделия.\n" + } + } + }, + "v5FbsPostingProductExemplarValidateV5RequestProductExemplar": { + "type": "object", + "properties": { + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "marks": { + "type": "array", + "description": "Список контрольных идентификационных знаков (КИЗ) в одном экземпляре.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5RequestProductExemplarMark" + } + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + } + } + }, + "v5FbsPostingProductExemplarValidateV5RequestProduct": { + "type": "object", + "properties": { + "exemplars": { + "type": "array", + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5RequestProductExemplar" + } + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v5FbsPostingProductExemplarValidateV5Request": { + "type": "object", + "properties": { + "posting_number": { + "description": "Номер отправления.", + "type": "string" + }, + "products": { + "type": "array", + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5RequestProduct" + } + } + } + }, + "v5FbsPostingProductExemplarValidateV5ResponseProductExemplarMark": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Ошибки при проверке контрольных идентификационных знаков (КИЗ).", + "items": { + "type": "string" + } + }, + "mark": { + "type": "string", + "description": "Значение кода маркировки." + }, + "mark_type": { + "type": "string", + "description": "Тип кода маркировки:\n - `mandatory_mark` — обязательная маркировка «Честный ЗНАК»;\n - `jw_uin` — уникальный идентификационный номер (УИН) ювелирного изделия.\n" + }, + "valid": { + "type": "boolean", + "description": "Результат прохождения проверки. `true`, если контрольный идентификационный знак (КИЗ) соответствует требованиям." + } + } + }, + "v5FbsPostingProductExemplarValidateV5ResponseProductExemplar": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Ошибки валидации экземпляра.", + "items": { + "type": "string" + } + }, + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "marks": { + "type": "array", + "description": "Список контрольных идентификационных знаков (КИЗ) в одном экземпляре.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5ResponseProductExemplarMark" + } + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + }, + "valid": { + "type": "boolean", + "description": "Результат прохождения проверки. `true`, если код экземпляра соответствует требованиям." + } + } + }, + "v5FbsPostingProductExemplarValidateV5ResponseProduct": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Код ошибки." + }, + "exemplars": { + "type": "array", + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5ResponseProductExemplar" + } + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "valid": { + "type": "boolean", + "description": "Результат прохождения проверки. `true`, если коды всех экземпляров соответствуют требованиям." + } + } + }, + "v5FbsPostingProductExemplarValidateV5Response": { + "type": "object", + "properties": { + "products": { + "type": "array", + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/v5FbsPostingProductExemplarValidateV5ResponseProduct" + } + } + } + }, + "v1FbsPostingProductExemplarUpdateRequest": { + "type": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "v1CarriageCreateRequest": { + "type": "object", + "title": "object", + "properties": { + "delivery_method_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор метода доставки." + }, + "departure_date": { + "type": "string", + "format": "date-time", + "description": "Дата отгрузки. По умолчанию — текущая дата." + } + } + }, + "v1CarriageCreateResponse": { + "type": "object", + "title": "object", + "properties": { + "carriage_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор перевозки." + } + } + }, + "v1CarriageApproveRequest": { + "type": "object", + "title": "object", + "required": [ + "carriage_id" + ], + "properties": { + "carriage_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор отгрузки.", + "required": true + }, + "containers_count": { + "format": "int32", + "type": "integer", + "description": "Количество грузовых мест. \n\nИспользуйте параметр, если вы подключены к доверительной приёмке и отгружаете заказы грузовыми местами. Если вы не подключены к доверительной приёмке, пропустите его.\n" + } + } + }, + "v1CarriageApproveResponse": { + "type": "object", + "title": "object" + }, + "v1CarriageDeliveryListRequest": { + "type": "object", + "title": "object", + "properties": { + "delivery_method_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор метода доставки." + }, + "departure_date": { + "type": "string", + "format": "date-time", + "description": "Дата отгрузки. По умолчанию — текущая дата." + } + } + }, + "v1CarriageDeliveryListResponseResultCarriages": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "string", + "format": "int64", + "description": "Идентификатор перевозки." + }, + "postings_count": { + "type": "integer", + "format": "int32", + "description": "Количество отправлений в перевозке." + }, + "quantum_count": { + "type": "integer", + "format": "int32", + "description": "Количество квантов в перевозке." + }, + "status": { + "type": "string", + "description": "Статус перевозки для запрашиваемых метода и даты." + } + } + }, + "v1CarriageDeliveryListResponseResultErrors": { + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "description": { + "type": "string", + "description": "Описание ошибки." + }, + "status": { + "type": "string", + "description": "Статус ошибки." + } + }, + "type": "object", + "title": "object" + }, + "v1CarriageDeliveryListResponseResult": { + "type": "object", + "title": "object", + "properties": { + "assembly_list_availability": { + "type": "boolean", + "description": "`true`, если доступен лист подбора.\n" + }, + "can_create_another_carriage": { + "type": "boolean", + "description": "`true`, если можно создать ещё одну перевозку.\n" + }, + "carriage_postings_count": { + "type": "integer", + "format": "int32", + "description": "Количество отправлений в перевозке." + }, + "carriage_quantum_count": { + "type": "integer", + "format": "int32", + "description": "Количество квантов в перевозке." + }, + "carriages": { + "type": "array", + "items": { + "type": "string", + "$ref": "#/components/schemas/v1CarriageDeliveryListResponseResultCarriages" + }, + "description": "Список перевозок." + }, + "cut_in": { + "type": "string", + "format": "date-time", + "description": "Время начала сборки и часовой пояс времени склада." + }, + "delivery_method_id": { + "type": "integer", + "description": "Идентификатор метода доставки." + }, + "delivery_method_name": { + "type": "string", + "description": "Название метода доставки." + }, + "delivery_method_status": { + "type": "string", + "description": "Статус метода доставки." + }, + "departure_date": { + "type": "string", + "format": "date-time", + "description": "Дата отгрузки." + }, + "dropoff_address": { + "type": "string", + "description": "Адрес точки отгрузки." + }, + "dropoff_change_availability": { + "type": "string", + "description": "Статус возможности смены точки отгрузки." + }, + "dropoff_point_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор точки отгрузки." + }, + "dropoff_point_type": { + "type": "string", + "description": "Способ отгрузки." + }, + "errors": { + "items": { + "$ref": "#/components/schemas/v1CarriageDeliveryListResponseResultErrors" + }, + "type": "array", + "description": "Массив ошибок, которые возникли при обработке запроса." + }, + "first_mile_changing": { + "type": "boolean", + "description": "`true`, если точка отгрузки изменилась.\n" + }, + "first_mile_type": { + "type": "string", + "description": "Тип первой мили." + }, + "has_entrusted_acceptance": { + "type": "boolean", + "description": "Признак доверительной приёмки. `true`, если доверительная приёмка включена на складе." + }, + "integration_type": { + "type": "string", + "description": "Тип интеграции со службой доставки." + }, + "is_presort": { + "type": "boolean", + "description": "`true`, если отгрузка с предсортировкой.\n" + }, + "is_rfbs": { + "type": "boolean", + "description": "`true`, если склад работает по схеме rFBS.\n" + }, + "recommended_time_local": { + "type": "string", + "description": "Рекомендуемое местное время отгрузки в пункт приёма заказов." + }, + "recommended_time_utc_offset_in_minutes": { + "type": "number", + "format": "int32", + "description": "Смещение часового пояса рекомендуемого времени отгрузки от UTC-0 в минутах." + }, + "cutoff_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время, до которых нужно собрать отправление." + }, + "mandatory_packaged_count": { + "type": "integer", + "format": "int32", + "description": "Количество «обязательных» собранных отправлений." + }, + "mandatory_packaged_quantum_count": { + "type": "integer", + "format": "int32", + "description": "Количество «обязательных» собранных квантов." + }, + "mandatory_postings_count": { + "type": "integer", + "format": "int32", + "description": "Количество отправлений, которые нужно собрать." + }, + "mandatory_quantum_count": { + "type": "integer", + "format": "int32", + "description": "Количество квантов, которые нужно собрать." + }, + "optional_packaged_count": { + "type": "integer", + "format": "int32", + "description": "Количество собранных «необязательных» отправлений." + }, + "postings_for_another_carriage_count": { + "type": "integer", + "format": "int32", + "description": "Количество отправлений, которые могут попасть в следующую перевозку." + }, + "quantum_for_another_carriage_count": { + "type": "integer", + "format": "int32", + "description": "Количество квантов, которые могут попасть в следующую перевозку." + }, + "timeslot_from": { + "type": "string", + "format": "date-time", + "description": "Начало таймслота в точке отгрузки." + }, + "timeslot_to": { + "type": "string", + "format": "date-time", + "description": "Окончание таймслота в точке отгрузки." + }, + "tpl_provider_icon_url": { + "type": "string", + "description": "Ссылка на иконку службы доставки." + }, + "tpl_provider_name": { + "type": "string", + "description": "Название службы доставки." + }, + "warehouse_city": { + "type": "string", + "description": "Город склада." + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + }, + "warehouse_name": { + "type": "string", + "description": "Название склада." + } + } + }, + "v1CarriageDeliveryListResponse": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v1CarriageDeliveryListResponseResult" + } + } + } + }, + "postingPostingFBSActCreateRequest": { + "required": [ + "delivery_method_id" + ], + "properties": { + "containers_count": { + "format": "int32", + "type": "integer", + "description": "Количество грузовых мест. \n\nИспользуйте параметр, если вы подключены к доверительной приёмке и отгружаете заказы грузовыми местами. Если вы не подключены к доверительной приёмке, пропустите его.\n\n[Подробнее в Базе знаний продавца](https://docs.ozon.ru/partners/prodayoa-so-svoego-sklada-fbs/doveritel-naya-priemka-gruzovogo-mesta)\n" + }, + "delivery_method_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор метода доставки. Можно получить с помощью метода [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList)." + }, + "departure_date": { + "type": "string", + "format": "date-time", + "description": "Дата отгрузки." + } + }, + "type": "object", + "title": "object" + }, + "PostingFBSActCreateResponseAct": { + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Номер задания на формирование штрихкода и документов." + } + }, + "type": "object", + "title": "object", + "description": "Результат работы метода." + }, + "postingPostingFBSActCreateResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/PostingFBSActCreateResponseAct" + } + }, + "type": "object", + "title": "object" + }, + "postingv1GetCarriageAvailableListRequest": { + "required": [ + "delivery_method_id" + ], + "type": "object", + "title": "object", + "properties": { + "delivery_method_id": { + "type": "integer", + "format": "int64", + "description": "Фильтр по методу доставки. Можно получить с помощью метода [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList)." + }, + "departure_date": { + "type": "string", + "format": "date-time", + "description": "Дата отгрузки. По умолчанию — текущая дата." + } + } + }, + "ResultError": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Код ошибки." + }, + "status": { + "type": "string", + "description": "Тип ошибки:\n- `warning` — предупреждение;\n- `critical` — критическая ошибка.\n" + } + } + }, + "GetCarriageAvailableListResponseResult": { + "type": "object", + "title": "object", + "properties": { + "carriage_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор перевозки (также номер задания на формирование документов)." + }, + "carriage_postings_count": { + "type": "integer", + "format": "int32", + "description": "Количество отправлений в перевозке." + }, + "carriage_status": { + "type": "string", + "description": "Статус перевозки для запрашиваемого метода доставки и даты отгрузки." + }, + "cutoff_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время, до которых нужно собрать отправление." + }, + "delivery_method_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор метода доставки." + }, + "delivery_method_name": { + "type": "string", + "description": "Название метода доставки." + }, + "errors": { + "description": "Список ошибок.", + "items": { + "$ref": "#/components/schemas/ResultError" + } + }, + "first_mile_type": { + "type": "string", + "description": "Тип первой мили." + }, + "has_entrusted_acceptance": { + "type": "boolean", + "description": "Признак доверительной приёмки. `true`, если доверительная приёмка включена на складе." + }, + "mandatory_postings_count": { + "type": "integer", + "format": "int32", + "description": "Количество отправлений, которые нужно собрать." + }, + "mandatory_packaged_count": { + "type": "integer", + "format": "int32", + "description": "Количество собранных отправлений." + }, + "recommended_time_local": { + "type": "string", + "description": "Рекомендуемое местное время отгрузки на пункт приёма заказов." + }, + "recommended_time_utc_offset_in_minutes": { + "type": "number", + "format": "int32", + "description": "Смещение часового пояса рекомендуемого времени отгрузки от UTC-0 в минутах." + }, + "tpl_provider_icon_url": { + "type": "string", + "description": "Ссылка на иконку службы доставки." + }, + "tpl_provider_name": { + "type": "string", + "description": "Название службы доставки." + }, + "warehouse_city": { + "type": "string", + "description": "Город склада." + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + }, + "warehouse_name": { + "type": "string", + "description": "Название склада." + }, + "warehouse_timezone": { + "type": "string", + "description": "Часовой пояс, в котором находится склад." + } + } + }, + "postingv1GetCarriageAvailableListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат работы метода.", + "items": { + "$ref": "#/components/schemas/GetCarriageAvailableListResponseResult" + } + } + } + }, + "carriageCarriageGetRequest": { + "required": [ + "carriage_id" + ], + "type": "object", + "properties": { + "carriage_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор перевозки." + } + } + }, + "carriageCarriageGetResponseCancelAvailability": { + "type": "object", + "title": "object", + "description": "Возможность отмены.", + "properties": { + "is_cancel_available": { + "type": "boolean", + "description": "`true`, если перевозку можно отменить.\n" + }, + "reason": { + "type": "string", + "description": "Причина, почему перевозку нельзя отменить." + } + } + }, + "carriageCarriageGetResponse": { + "type": "object", + "properties": { + "act_type": { + "type": "string", + "description": "Тип акта приёма-передачи. Актуально для продавцов FBS." + }, + "is_waybill_enabled": { + "type": "boolean", + "description": "`true`, если доступна печать транспортной накладной.\n" + }, + "is_econom": { + "type": "boolean", + "description": "`true`, если отгрузка относится к товарам «Суперэконом».\n" + }, + "arrival_pass_ids": { + "type": "array", + "description": "Список идентификаторов пропусков, оформленных на перевозку.", + "items": { + "type": "string", + "format": "int64" + } + }, + "available_actions": { + "type": "array", + "description": "Доступные действия с перевозкой.", + "items": { + "type": "string" + } + }, + "cancel_availability": { + "$ref": "#/components/schemas/carriageCarriageGetResponseCancelAvailability" + }, + "carriage_id": { + "type": "integer", + "description": "Идентификатор перевозки.", + "format": "int64" + }, + "company_id": { + "type": "integer", + "description": "Идентификатор продавца.", + "format": "int64" + }, + "containers_count": { + "type": "integer", + "description": "Количество грузовых мест.", + "format": "int32" + }, + "created_at": { + "type": "string", + "description": "Дата создания перевозки.", + "format": "date-time" + }, + "delivery_method_id": { + "type": "integer", + "description": "Идентификатор метода доставки.", + "format": "int64" + }, + "departure_date": { + "type": "string", + "description": "Дата выполнения перевозки." + }, + "first_mile_type": { + "type": "string", + "description": "Тип первой мили." + }, + "has_postings_for_next_carriage": { + "type": "boolean", + "description": "`true`, если есть отправления, которые не попали в перевозку, но нужно отгрузить.\n" + }, + "integration_type": { + "type": "string", + "description": "Тип перевозки." + }, + "is_container_label_printed": { + "type": "boolean", + "description": "`true`, если вы уже напечатали этикетки на грузовые места.\n" + }, + "is_partial": { + "type": "boolean", + "description": "`true`, если перевозка частичная.\n" + }, + "partial_num": { + "type": "integer", + "description": "Порядковый номер частичной перевозки.", + "format": "int64" + }, + "retry_count": { + "type": "integer", + "description": "Количество повторных попыток создания перевозки.", + "format": "int32" + }, + "status": { + "type": "string", + "description": "Статус перевозки:\n- `received` — идёт приёмка,\n- `closed` — завершена после приёмки,\n- `sended` — отправлена,\n- `cancelled` — отменена.\n" + }, + "tpl_provider_id": { + "type": "integer", + "description": "Идентификатор провайдера доставки.", + "format": "int64" + }, + "updated_at": { + "type": "string", + "description": "Дата последнего обновления информации о перевозке.", + "format": "date-time" + }, + "warehouse_id": { + "type": "integer", + "description": "Идентификатор склада.", + "format": "int64" + } + } + }, + "v1ProductFbsSplit": { + "type": "object", + "title": "PostingFbsSplit", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "quantity": { + "type": "integer", + "format": "int64", + "description": "Количество экземпляров." + } + }, + "required": [ + "product_id", + "quantity" + ] + }, + "v1PostingFbsSplitRequestPosting": { + "type": "object", + "properties": { + "products": { + "type": "array", + "description": "Список товаров в заказе.", + "items": { + "$ref": "#/components/schemas/v1ProductFbsSplit" + } + } + }, + "required": [ + "products" + ] + }, + "v1PostingFbsSplitRequest": { + "type": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "postings": { + "type": "array", + "description": "Список отправлений, на которые поделится заказ. За один запрос можно разделить один заказ.", + "items": { + "$ref": "#/components/schemas/v1PostingFbsSplitRequestPosting" + } + } + }, + "required": [ + "posting_number", + "postings" + ] + }, + "v1PostingFbsSplitResponsePostingParent": { + "type": "object", + "description": "Информация об изначальном отправлении.", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер изначального отправления." + }, + "products": { + "type": "array", + "description": "Список товаров в отправлении.", + "items": { + "$ref": "#/components/schemas/v1ProductFbsSplit" + } + } + } + }, + "v1PostingFbsSplitResponsePosting": { + "type": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "type": "array", + "description": "Список товаров в отправлении.", + "items": { + "$ref": "#/components/schemas/v1ProductFbsSplit" + } + } + } + }, + "v1PostingFbsSplitResponse": { + "type": "object", + "properties": { + "parent_posting": { + "$ref": "#/components/schemas/v1PostingFbsSplitResponsePostingParent" + }, + "postings": { + "type": "array", + "description": "Список отправлений, на которые разделился заказ.", + "items": { + "$ref": "#/components/schemas/v1PostingFbsSplitResponsePosting" + } + } + } + }, + "v2PostingFBSActGetPostingsRequest": { + "required": [ + "id" + ], + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "int", + "format": "int64", + "description": "Идентификатор акта. Можно получить с помощью метода [/v2/posting/fbs/act/list](#operation/PostingAPI_FbsActList). Нужное значение — в параметре ответа `result.id`." + } + } + }, + "v2PostingFBSActGetProducts": { + "type": "object", + "title": "object", + "properties": { + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "price": { + "type": "string", + "description": "Цена товара." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара в отправлении." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v2PostingFBSActGetPostingsResult": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор акта." + }, + "multi_box_qty": { + "type": "integer", + "format": "int32", + "description": "Количество коробок, в которые упакован товар." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "status": { + "type": "string", + "description": "Статус отправления." + }, + "seller_error": { + "type": "string", + "description": "Расшифровка кода ошибки." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время обновления записи об отправлении." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время создания записи об отправлении." + }, + "products": { + "type": "array", + "description": "Список товаров в отправлении.", + "items": { + "$ref": "#/components/schemas/v2PostingFBSActGetProducts" + } + } + } + }, + "v2PostingFBSActGetPostingsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "description": "Информация об отправлениях.", + "items": { + "$ref": "#/components/schemas/v2PostingFBSActGetPostingsResult" + } + } + } + }, + "postingPostingFBSActGetContainerLabelsRequest": { + "required": [ + "id" + ], + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Номер задания на формирование документов (также идентификатор перевозки) из метода [POST /v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingFBSActGetContainerLabelsResponse": { + "properties": { + "file_content": { + "format": "byte", + "type": "string", + "description": "Содержание файла в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + }, + "type": "object", + "title": "object" + }, + "v2PostingFBSGetBarcodeRequest": { + "required": [ + "id" + ], + "type": "object", + "title": "object", + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор перевозки." + } + } + }, + "v2PostingFBSGetBarcodeResponse": { + "type": "object", + "title": "object", + "properties": { + "file_content": { + "type": "string", + "description": "Изображение со штрихкодом в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + } + }, + "v2PostingFBSGetBarcodeTextResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "string", + "description": "Штрихкод в текстовом виде." + } + } + }, + "v2PostingFBSDigitalActCheckStatusRequest": { + "required": [ + "id" + ], + "type": "object", + "title": "object", + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Номер задания на формирование документов (также идентификатор перевозки) из метода [POST /v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)." + } + } + }, + "v2PostingFBSDigitalActCheckStatusResponse": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Номер задания на формирование документов." + }, + "status": { + "type": "string", + "description": "Cтатус формирования документов:\n- `FORMING` — ещё не готовы,\n- `FORMED` — сформированы успешно,\n- `CONFIRMED` — подписаны Ozon,\n- `CONFIRMED_WITH_MISMATCH` — подписаны Ozon с расхождениями,\n- `NOT_FOUND` — документы не найдены,\n- `UNKNOWN_ERROR` — произошла ошибка.\n" + } + } + }, + "postingPostingFBSGetActRequest": { + "required": [ + "id" + ], + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Номер задания на формирование документов (также идентификатор перевозки) из метода [POST /v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingFBSGetActResponse": { + "properties": { + "file_content": { + "format": "byte", + "type": "string", + "description": "Содержание файла в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + }, + "type": "object", + "title": "object" + }, + "v2PostingFBSActListFilter": { + "type": "object", + "title": "object", + "description": "Параметры фильтра.", + "properties": { + "date_from": { + "type": "string", + "description": "Начальная дата создания отгрузок." + }, + "date_to": { + "type": "string", + "description": "Конечная дата создания отгрузок." + }, + "integration_type": { + "type": "string", + "description": "Тип интеграции со службой доставки:\n - `ozon` — доставка через Ozon логистику.\n - `aggregator` — доставка внешней службой, Ozon регистрирует заказ.\n - `3pl_tracking` — доставка внешней службой, продавец регистрирует заказ.\n - `non_integrated` — доставка силами продавца.\n" + }, + "status": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Статусы перевозок:\n - `new` — новая,\n - `awaiting_retry` — повторная попытка создания,\n - `in_process` — собирается,\n - `success` — создана,\n - `error` — ошибка при создании,\n - `sended` — отправлена,\n - `received` — получена,\n - `formed` — собрана,\n - `cancelled` — отменена,\n - `pending` — в очереди на сборку,\n - `completion_enqueued` — в очереди на завершение,\n - `completion_processing` — в процессе завершения,\n - `completion_failed` — ошибка при завершении,\n - `cancelation_enqueued` — в очереди на отмену,\n - `cancelation_processing` — в процессе отмены,\n - `cancelation_failed` — ошибка при отмене,\n - `completed` — завершена,\n - `closed` — закрыта.\n" + } + }, + "required": [ + "date_from", + "date_to" + ] + }, + "v2PostingFBSActListRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/v2PostingFBSActListFilter" + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Максимальное количество актов в ответе." + } + }, + "required": [ + "limit" + ] + }, + "v2PostingFBSActListRelatedDocs": { + "type": "object", + "title": "object", + "description": "Информация про акты перевозки.", + "properties": { + "act_of_acceptance": { + "type": "object", + "description": "Информация про акт приёма-передачи.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания акта." + }, + "document_status": { + "type": "string", + "description": "Статус акта:\n - `FORMING` — ещё не готов,\n - `FORMED` — сформирован,\n - `CONFIRMED` — подписан Ozon,\n - `CONFIRMED_WITH_MISMATCH` — подписан Ozon с расхождениями,\n - `ACCEPTED_BY_CARGO_PLACES` — принят по грузовым местам,\n - `PRINTED_CARRIAGE` — электронная подпись не нужна,\n - `ERROR`, `UNKNOWN_ERROR` — ошибка.\n" + } + } + }, + "act_of_mismatch": { + "type": "object", + "description": "Информация про акт о расхождениях.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания перевозки." + }, + "document_status": { + "type": "string", + "description": "Статус перевозки или акта:\n - `NEED_TO_SIGN` — требуется подпись,\n - `ON_CONFIRMATION` — на подписании Ozon,\n - `CONFIRMED` — подписан Ozon,\n - `DISPUTE_OPENED` — принят по грузовым местам,\n - `PRINTED_CARRIAGE` — электронная подпись не нужна,\n - `UNKNOWN_ERROR` — ошибка.\n" + } + } + }, + "act_of_excess": { + "type": "object", + "description": "Информация про акт об излишках.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания акта." + }, + "document_status": { + "type": "string", + "description": "Статус акта:\n - `NEED_TO_SIGN` — требуется подпись,\n - `CONFIRMED` — подписан Ozon,\n - `UNKNOWN_ERROR` — ошибка.\n" + } + } + } + } + }, + "v2PostingFBSActListResult": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "int", + "format": "int64", + "description": "Идентификатор отгрузки." + }, + "delivery_method_id": { + "type": "int", + "format": "int64", + "description": "Идентификатор метода доставки." + }, + "delivery_method_name": { + "type": "string", + "description": "Название метода доставки." + }, + "integration_type": { + "type": "string", + "description": "Тип интеграции со службой доставки:\n - `ozon` — доставка через Ozon логистику.\n - `3pl` — доставка внешней службой, продавец регистрирует заказ.\n" + }, + "containers_count": { + "type": "int", + "format": "int32", + "description": "Число грузовых мест." + }, + "status": { + "type": "string", + "description": "Статус отгрузки." + }, + "departure_date": { + "type": "string", + "description": "Дата отгрузки." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания записи об отгрузке." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Дата обновления записи об отгрузке." + }, + "act_type": { + "type": "string", + "description": "Тип акта приёма-передачи для FBS продавцов." + }, + "is_partial": { + "type": "boolean", + "description": "Признак частичной перевозки. `true`, если перевозка частичная.\n\nЧастичная перевозка значит, что отгрузка была разделена на несколько частей и по каждой из частей формируются отдельные акты.\n" + }, + "has_postings_for_next_carriage": { + "type": "boolean", + "description": "Признак наличия подлежащих отгрузке отправлений, которые не попали в текущую перевозку. `true`, если такие отправления есть." + }, + "partial_num": { + "type": "integer", + "format": "int64", + "description": "Порядковый номер частичной перевозки." + }, + "related_docs": { + "$ref": "#/components/schemas/v2PostingFBSActListRelatedDocs" + } + } + }, + "v2PostingFBSActListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "description": "Результат запроса.", + "items": { + "$ref": "#/components/schemas/v2PostingFBSActListResult" + } + } + } + }, + "v2PostingFBSGetDigitalActRequest": { + "required": [ + "id" + ], + "type": "object", + "title": "object", + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Номер задания на формирование документов (также идентификатор перевозки) из метода [POST /v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)." + }, + "doc_type": { + "format": "string", + "description": "Тип электронного документа:\n- `act_of_acceptance` — лист отгрузки,\n- `act_of_mismatch` — акт о расхождениях,\n- `act_of_excess` — акт об излишках.\n" + } + } + }, + "v2PostingFBSGetDigitalActResponse": { + "type": "object", + "title": "object", + "properties": { + "file_content": { + "type": "string", + "format": "byte", + "description": "Содержание файла в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + } + }, + "postingPostingFBSActCheckStatusRequest": { + "required": [ + "id" + ], + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Номер задания на формирование документов (также идентификатор перевозки) из метода [POST /v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate)." + } + }, + "type": "object", + "title": "object" + }, + "PostingFBSActCheckStatusResponseStatus": { + "properties": { + "act_type": { + "type": "string", + "description": "Тип документов.\n\nЕсли значение `ozon_digital`, используйте методы [/v2/posting/fbs/digital/act/check-status](#operation/PostingAPI_PostingFBSDigitalActCheckStatus) \n и [/v2/posting/fbs/digital/act/get-pdf](#operation/PostingAPI_PostingFBSGetDigitalAct) для получения электронной транспортной накладной.\n" + }, + "added_to_act": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Массив c номерами отправлений, которые добавлены в перевозку. Эти отправления нужно передать сегодня." + }, + "removed_from_act": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Массив с номерами отправлений, которые не попали в перевозку. Такие отправления нужно передавать со следующей отгрузкой." + }, + "status": { + "type": "string", + "description": "Статус запроса:\n - `in_process` — документы формируются, нужно подождать.\n - `ready` — документы сформированы и готовы для скачивания.\n - `error` — произошла ошибка при формировании документов, запросите документы повторно.\n - `cancelled` — создание документов отменено, запросите их повторно.\n - `The next postings aren't ready` — произошла ошибка, отправления не включены в отгрузку. Подождите некоторое время и проверьте результат запроса. Если ошибка повторяется, обратитесь в службу поддержки.\n" + }, + "is_partial": { + "type": "boolean", + "description": "Признак частичной перевозки. `true`, если перевозка частичная.\n\nЧастичная перевозка значит, что отгрузка была разделена на несколько частей.\n" + }, + "has_postings_for_next_carriage": { + "type": "boolean", + "description": "`true`, если есть отправления, не попавшие в текущую перевозку, но которые нужно отгрузить.\n\nЕсли в ответе вернулось `true`, подтвердите отгрузку или создайте новый акт через метод [/v2/posting/fbs/act/create](#operation/PostingAPI_PostingFBSActCreate) и проверьте их статус. Повторяйте действия, пока в ответе не вернётся `false`.\n" + }, + "partial_num": { + "type": "integer", + "format": "int64", + "description": "Порядковый номер частичной перевозки." + } + }, + "type": "object", + "title": "object", + "description": "Результат работы метода." + }, + "postingPostingFBSActCheckStatusResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/PostingFBSActCheckStatusResponseStatus" + } + }, + "type": "object", + "title": "object" + }, + "FbsPostingTrackingNumberSetRequestTrackingNumber": { + "required": [ + "posting_number", + "tracking_number" + ], + "properties": { + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + }, + "tracking_number": { + "type": "string", + "description": "Трек-номер отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingTrackingNumberSetRequest": { + "required": [ + "tracking_numbers" + ], + "properties": { + "tracking_numbers": { + "items": { + "$ref": "#/components/schemas/FbsPostingTrackingNumberSetRequestTrackingNumber" + }, + "type": "array", + "description": "Массив с парами идентификатор отправления — трек-номер." + } + }, + "type": "object", + "title": "object" + }, + "FbsPostingMoveStatusResponseMoveStatus": { + "properties": { + "error": { + "type": "string", + "description": "Ошибка при обработке запроса." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "result": { + "type": "boolean", + "description": "Если запрос выполнен без ошибок — `true`." + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingMoveStatusResponse": { + "properties": { + "result": { + "description": "Результат работы метода.", + "items": { + "$ref": "#/components/schemas/FbsPostingMoveStatusResponseMoveStatus" + }, + "type": "array" + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingSentbysellerRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Список идентификаторов отправлений." + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingSentbysellerResponseItem": { + "properties": { + "error": { + "type": "string", + "description": "Ошибка." + }, + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + }, + "result": { + "type": "boolean" + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingSentbysellerResponse": { + "properties": { + "result": { + "description": "Результат работы метода.", + "items": { + "$ref": "#/components/schemas/postingFbsPostingSentbysellerResponseItem" + }, + "type": "array" + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingDeliveringRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingLastMileRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingFbsPostingDeliveredRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "v1PostingFbsTimeslotChangeRestrictionsRequest": { + "required": [ + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "v1PostingFbsTimeslotChangeRestrictionsDeliveryInterval": { + "type": "object", + "title": "object", + "description": "Период дат, доступных для переноса.", + "properties": { + "begin": { + "type": "string", + "format": "date-time", + "description": "Дата начала периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.\n" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "Дата конца периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.\n" + } + } + }, + "v1PostingFbsTimeslotChangeRestrictionsResponse": { + "type": "object", + "title": "object", + "properties": { + "delivery_interval": { + "$ref": "#/components/schemas/v1PostingFbsTimeslotChangeRestrictionsDeliveryInterval" + }, + "remaining_changes_count": { + "type": "integer", + "format": "int64", + "description": "Количество оставшихся переносов." + } + } + }, + "v1PostingFbsTimeslotSetNewTimeslot": { + "required": [ + "from", + "to" + ], + "type": "object", + "title": "object", + "description": "Новый период для даты доставки.", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "Дата начала периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.\n" + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Дата конца периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.\n" + } + } + }, + "v1PostingFbsTimeslotSetRequest": { + "required": [ + "new_timeslot", + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "new_timeslot": { + "$ref": "#/components/schemas/v1PostingFbsTimeslotSetNewTimeslot" + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "v1PostingFbsTimeslotSetResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "boolean", + "description": "`true`, если дата изменена.\n" + } + } + }, + "v1SetPostingCutoffRequest": { + "type": "object", + "title": "object", + "properties": { + "new_cutoff_date": { + "type": "string", + "format": "date-time", + "description": "Новая дата отгрузки." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + }, + "required": [ + "new_cutoff_date", + "posting_number" + ] + }, + "v1SetPostingCutoffResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "boolean", + "description": "`true`, если установлена новая дата.\n" + } + } + }, + "postingv3GetFbsPostingUnfulfilledListRequestFilter": { + "required": [ + "cutoff_from", + "cutoff_to" + ], + "properties": { + "cutoff_from": { + "format": "date-time", + "type": "string", + "description": "Фильтр по времени, до которого продавцу нужно собрать заказ. Начало периода.\n\nФормат: YYYY-MM-DDThh:mm:ss.mcsZ.\nПример: 2020-03-18T07:34:50.359Z.\n" + }, + "cutoff_to": { + "format": "date-time", + "type": "string", + "description": "Фильтр по времени, до которого продавцу нужно собрать заказ. Конец периода.\n\nФормат: YYYY-MM-DDThh:mm:ss.mcsZ.\nПример: 2020-03-18T07:34:50.359Z.\n" + }, + "delivering_date_from": { + "format": "date-time", + "type": "string", + "description": "Минимальная дата передачи отправления в доставку." + }, + "delivering_date_to": { + "format": "date-time", + "type": "string", + "description": "Максимальная дата передачи отправления в доставку." + }, + "delivery_method_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Идентификатор способа доставки. Можно получить с помощью метода [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList)." + }, + "is_quantum": { + "type": "boolean", + "description": "Укажите `true`, чтобы получить только отправления квантов.\n\nПо умолчанию — `false`, в ответе придут все отправления.\n" + }, + "provider_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Идентификатор службы доставки. Можно получить с помощью метода [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList)." + }, + "status": { + "type": "string", + "description": "Статус отправления:\n- `acceptance_in_progress` — идёт приёмка,\n- `awaiting_approve` — ожидает подтверждения,\n- `awaiting_packaging` — ожидает упаковки,\n- `awaiting_registration` — ожидает регистрации,\n- `awaiting_deliver` — ожидает отгрузки,\n- `arbitration` — арбитраж,\n- `client_arbitration` — клиентский арбитраж доставки,\n- `delivering` — доставляется,\n- `driver_pickup` — у водителя,\n- `not_accepted` — не принят на сортировочном центре.\n" + }, + "warehouse_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Идентификатор склада. Можно получить с помощью метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList)." + } + }, + "type": "object", + "title": "object", + "description": "Фильтр запроса.\n\nИспользуйте фильтр либо по времени сборки — `cutoff`, либо по дате передачи отправления в доставку — `delivering_date`.\nЕсли использовать их вместе, в ответе вернётся ошибка.\n\nЧтобы использовать фильтр по времени сборки, заполните поля `cutoff_from` и `cutoff_to`.\n\nЧтобы использовать фильтр по дате передачи отправления в доставку, заполните поля `delivering_date_from` и `delivering_date_to`.\n" + }, + "postingv3FbsPostingWithParams": { + "properties": { + "analytics_data": { + "type": "boolean", + "description": "Добавить в ответ данные аналитики." + }, + "barcodes": { + "type": "boolean", + "description": "Добавить в ответ штрихкоды отправления." + }, + "financial_data": { + "type": "boolean", + "description": "Добавить в ответ финансовые данные." + }, + "legal_info": { + "type": "boolean", + "description": "Добавить в ответ юридическую информацию." + }, + "translit": { + "type": "boolean", + "description": "Выполнить транслитерацию возвращаемых значений." + } + }, + "type": "object", + "title": "object", + "description": "Дополнительные поля, которые нужно добавить в ответ." + }, + "postingv3GetFbsPostingUnfulfilledListRequest": { + "required": [ + "filter", + "limit", + "offset" + ], + "properties": { + "dir": { + "type": "string", + "description": "Направление сортировки:\n - `asc` — по возрастанию,\n - `desc` — по убыванию.\n" + }, + "filter": { + "$ref": "#/components/schemas/postingv3GetFbsPostingUnfulfilledListRequestFilter" + }, + "limit": { + "format": "int64", + "type": "integer", + "description": "Количество значений в ответе:\n - максимум — 1000,\n - минимум — 1.\n" + }, + "offset": { + "format": "int64", + "type": "integer", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента." + }, + "with": { + "$ref": "#/components/schemas/postingv3FbsPostingWithParams" + } + }, + "type": "object", + "title": "object" + }, + "v3AddresseeFbsLists": { + "properties": { + "name": { + "type": "string", + "description": "Имя покупателя." + }, + "phone": { + "type": "string", + "description": "Контактный телефон.\n\nВсегда возвращает пустую строку `\"\"`.\n" + } + }, + "type": "object", + "title": "object", + "description": "Контактные данные получателя." + }, + "v3FbsPostingAnalyticsData": { + "properties": { + "city": { + "type": "string", + "description": "Город доставки. Только для отправлений rFBS и продавцов из СНГ." + }, + "delivery_date_begin": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала доставки." + }, + "delivery_date_end": { + "format": "date-time", + "type": "string", + "description": "Дата и время конца доставки." + }, + "delivery_type": { + "type": "string", + "description": "Способ доставки." + }, + "is_legal": { + "type": "boolean", + "description": "Признак, что получатель юридическое лицо:\n - `true` — юридическое лицо,\n - `false` — физическое лицо.\n" + }, + "is_premium": { + "type": "boolean", + "description": "Наличие подписки Premium." + }, + "payment_type_group_name": { + "type": "string", + "description": "Способ оплаты: \n- `картой онлайн`,\n- `Ozon Карта`,\n- `автосписание с Ozon Карты при выдаче`,\n- `сохранённой картой при получении`,\n- `Система Быстрых Платежей`, \n- `Ozon Рассрочка`, \n- `оплата на расчётный счёт`,\n- `SberPay`.\n" + }, + "region": { + "type": "string", + "description": "Регион доставки. Только для отправлений rFBS." + }, + "tpl_provider": { + "type": "string", + "description": "Служба доставки." + }, + "tpl_provider_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор службы доставки." + }, + "warehouse": { + "type": "string", + "description": "Название склада отправки заказа." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + } + }, + "type": "object", + "title": "object", + "description": "Данные аналитики." + }, + "v3Barcodes": { + "properties": { + "lower_barcode": { + "type": "string", + "description": "Нижний штрихкод на маркировке отправления." + }, + "upper_barcode": { + "type": "string", + "description": "Верхний штрихкод на маркировке отправления." + } + }, + "type": "object", + "title": "object", + "description": "Штрихкоды отправления." + }, + "v3Cancellation": { + "properties": { + "affect_cancellation_rating": { + "type": "boolean", + "description": "Если отмена влияет на рейтинг продавца — `true`." + }, + "cancel_reason": { + "type": "string", + "description": "Причина отмены." + }, + "cancel_reason_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены отправления." + }, + "cancellation_initiator": { + "type": "string", + "description": "Инициатор отмены:\n- `Продавец`, \n- `Клиент` или `покупатель`,\n- `Ozon`, \n- `Система`, \n- `Служба доставки`.\n" + }, + "cancellation_type": { + "type": "string", + "description": "Тип отмены отправления:\n- `seller` — отменено продавцом;\n- `client` или `customer` — отменено покупателем;\n- `ozon` — отменено Ozon;\n- `system`— отменено системой;\n- `delivery` — отменено службой доставки.\n" + }, + "cancelled_after_ship": { + "type": "boolean", + "description": "Если отмена произошла после сборки отправления — `true`." + } + }, + "type": "object", + "title": "object", + "description": "Информация об отмене." + }, + "v3Address": { + "properties": { + "address_tail": { + "type": "string", + "description": "Адрес в текстовом формате." + }, + "city": { + "type": "string", + "description": "Город доставки." + }, + "comment": { + "type": "string", + "description": "Комментарий к заказу." + }, + "country": { + "type": "string", + "description": "Страна доставки." + }, + "district": { + "type": "string", + "description": "Район доставки." + }, + "latitude": { + "format": "double", + "type": "number", + "description": "Широта." + }, + "longitude": { + "format": "double", + "type": "number", + "description": "Долгота." + }, + "provider_pvz_code": { + "type": "string", + "description": "Код пункта выдачи заказов 3PL провайдера." + }, + "pvz_code": { + "format": "int64", + "type": "integer", + "description": "Код пункта выдачи заказов." + }, + "region": { + "type": "string", + "description": "Регион доставки." + }, + "zip_code": { + "type": "string", + "description": "Почтовый индекс получателя." + } + }, + "type": "object", + "title": "object", + "description": "Информация об адресе доставки." + }, + "v3CustomerFbsLists": { + "properties": { + "address": { + "$ref": "#/components/schemas/v3Address" + }, + "customer_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор покупателя." + }, + "name": { + "type": "string", + "description": "Имя покупателя." + }, + "phone": { + "type": "string", + "description": "Контактный телефон.\n\nВсегда возвращает пустую строку `\"\"`.\n" + } + }, + "type": "object", + "title": "object", + "description": "Данные о покупателе." + }, + "v3DeliveryMethod": { + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор способа доставки." + }, + "name": { + "type": "string", + "description": "Название способа доставки." + }, + "tpl_provider": { + "type": "string", + "description": "Служба доставки." + }, + "tpl_provider_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор службы доставки." + }, + "warehouse": { + "type": "string", + "description": "Название склада." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + } + }, + "type": "object", + "title": "object", + "description": "Метод доставки." + }, + "v3PostingFinancialData": { + "properties": { + "cluster_from": { + "type": "string", + "description": "Код региона, откуда отправляется заказ." + }, + "cluster_to": { + "type": "string", + "description": "Код региона, куда доставляется заказ." + }, + "products": { + "items": { + "$ref": "#/components/schemas/PostingFinancialDataProduct" + }, + "type": "array", + "description": "Список товаров в заказе." + } + }, + "type": "object", + "title": "object", + "description": "Данные о стоимости товара, размере скидки, выплате и комиссии." + }, + "v3FbsPostingDetailOptional": { + "type": "object", + "title": "object", + "description": "Список товаров с дополнительными характеристиками.", + "properties": { + "products_with_possible_mandatory_mark": { + "type": "array", + "description": "Список товаров с возможной маркировкой." + } + } + }, + "v3FbsPostingProduct": { + "properties": { + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "price": { + "type": "string", + "description": "Цена товара." + }, + "quantity": { + "format": "int32", + "type": "integer", + "description": "Количество товара в отправлении." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Совпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "is_blr_traceable": { + "type": "boolean", + "description": "Признак прослеживаемости товара." + }, + "is_marketplace_buyout": { + "type": "boolean", + "description": "Признак выкупа товара." + } + }, + "type": "object", + "title": "object" + }, + "v3FbsPostingRequirementsV3": { + "type": "object", + "title": "object", + "properties": { + "products_requiring_change_country": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров (SKU), для которых нужно изменить страну-изготовитель. Чтобы изменить страну-изготовитель, используйте методы [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2) и [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2)." + }, + "products_requiring_gtd": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров (SKU), для которых нужно передать номера таможенной декларации (ГТД).\n\nДля сборки отправления передайте для всех перечисленных товаров номер таможенной декларации или информацию о том,\nчто номера нет, с помощью метода [/v3/posting/fbs/ship/package](#operation/PostingAPI_PackageShipFbsPostingV3)\nили [/v3/posting/fbs/ship](#operation/PostingAPI_ShipFbsPostingV3).\n" + }, + "products_requiring_country": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров (SKU), для которых нужно передать информацию о стране-изготовителе.\n\nДля сборки отправления передайте информацию о стране-изготовителе для всех перечисленных товаров с помощью метода [/v2/posting/fbs/product/country/set](#operation/PostingAPI_SetCountryProductFbsPostingV2).\n" + }, + "products_requiring_mandatory_mark": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров (SKU), для которых нужно передать маркировку «Честный ЗНАК».\n" + }, + "products_requiring_jw_uin": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список товаров, для которых нужно передать уникальный идентификационный номер (УИН) ювелирного изделия." + }, + "products_requiring_rnpt": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Список идентификаторов товаров (SKU), для которых нужно передать регистрационный номер партии товара (РНПТ).\n" + } + }, + "description": "Cписок продуктов, для которых нужно передать страну-изготовителя, номер грузовой таможенной декларации (ГТД), регистрационный номер партии товара (РНПТ) или маркировку «Честный ЗНАК», чтобы перевести отправление в следующий статус." + }, + "v3FbsTariffication": { + "properties": { + "current_tariff_rate": { + "type": "number", + "format": "double", + "description": "Текущий процент тарификации." + }, + "current_tariff_type": { + "type": "string", + "description": "Текущий тип тарификации — скидка или надбавка." + }, + "current_tariff_charge": { + "type": "string", + "description": "Текущая сумма скидки или надбавки." + }, + "current_tariff_charge_currency_code": { + "type": "string", + "description": "Валюта суммы." + }, + "next_tariff_rate": { + "type": "number", + "format": "double", + "description": "Процент, по которому будет тарифицироваться отправление через указанное в параметре `next_tariff_starts_at` время." + }, + "next_tariff_type": { + "type": "string", + "description": "Тип тарифа, по которому будет тарифицироваться отправление через указанное в параметре `next_tariff_starts_at` время — скидка или надбавка." + }, + "next_tariff_charge": { + "type": "string", + "description": "Сумма скидки или надбавки на следующем шаге тарификации." + }, + "next_tariff_starts_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время, когда начнёт применяться новый тариф.\n\nФормат: `YYYY-MM-DDThh:mm:ss.mcsZ`. \n\nПример: `2023-11-13T08:05:57.657Z`.\n" + }, + "next_tariff_charge_currency_code": { + "type": "string", + "description": "Валюта нового тарифа." + } + } + }, + "v3FbsPosting": { + "properties": { + "addressee": { + "$ref": "#/components/schemas/v3AddresseeFbsLists" + }, + "analytics_data": { + "$ref": "#/components/schemas/v3FbsPostingAnalyticsData" + }, + "available_actions": { + "items": { + "type": "string" + }, + "description": "Доступные действия и информация об отправлении:\n- `arbitration` — открыть спор;\n- `awaiting_delivery` — перевести в статус «Ожидает отгрузки»;\n- `can_create_chat` — начать чат с покупателем;\n- `cancel` — отменить отправление;\n- `click_track_number` — просмотреть по трек-номеру историю изменения статусов в личном кабинете;\n- `customer_phone_available` — телефон покупателя;\n- `has_weight_products` — весовые товары в отправлении;\n- `hide_region_and_city` — скрыть регион и город покупателя в отчёте;\n- `invoice_get` — получить информацию из счёта-фактуры;\n- `invoice_send` — создать счёт-фактуру;\n- `invoice_update` — отредактировать счёт-фактуру;\n- `label_download_big` — скачать большую этикетку;\n- `label_download_small` — скачать маленькую этикетку;\n- `label_download` — скачать этикетку;\n- `non_int_delivered` — перевести в статус «Условно доставлен»;\n- `non_int_delivering` — перевести в статус «Доставляется»;\n- `non_int_last_mile` — перевести в статус «Курьер в пути»;\n- `product_cancel` — отменить часть товаров в отправлении;\n- `set_cutoff` — необходимо указать дату отгрузки, воспользуйтесь методом [/v1/posting/cutoff/set](#operation/PostingAPI_SetPostingCutoff);\n- `set_timeslot` — изменить время доставки покупателю;\n- `set_track_number` — указать или изменить трек-номер;\n- `ship_async_in_process` — отправление собирается;\n- `ship_async_retry` — собрать отправление повторно после ошибки сборки;\n- `ship_async` — собрать отправление;\n- `ship_with_additional_info` — необходимо заполнить дополнительную информацию;\n- `ship` — собрать отправление;\n- `update_cis` — изменить дополнительную информацию.\n" + }, + "barcodes": { + "$ref": "#/components/schemas/v3Barcodes" + }, + "cancellation": { + "$ref": "#/components/schemas/v3Cancellation" + }, + "customer": { + "$ref": "#/components/schemas/v3CustomerFbsLists" + }, + "delivering_date": { + "format": "date-time", + "type": "string", + "description": "Дата передачи отправления в доставку." + }, + "delivery_method": { + "$ref": "#/components/schemas/v3DeliveryMethod" + }, + "financial_data": { + "$ref": "#/components/schemas/v3PostingFinancialData" + }, + "in_process_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала обработки отправления." + }, + "is_express": { + "type": "boolean", + "description": "Если использовалась быстрая доставка Ozon Express — `true`." + }, + "is_multibox": { + "type": "boolean", + "description": "Признак, что в отправлении есть многокоробочный товар и нужно передать количество коробок для него:\n\n- `true` — до сборки передайте количество коробок через метод [/v3/posting/multiboxqty/set](#operation/PostingAPI_PostingMultiBoxQtySetV3).\n- `false` — отправление собрано с указанием количества коробок в параметре `multi_box_qty` или в отправлении нет многокоробочного товара.\n" + }, + "legal_info": { + "$ref": "#/components/schemas/v2FboSinglePostingLegalInfo" + }, + "multi_box_qty": { + "type": "integer", + "format": "int32", + "description": "Количество коробок, в которые упакован товар." + }, + "optional": { + "$ref": "#/components/schemas/v3FbsPostingDetailOptional" + }, + "order_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор заказа, к которому относится отправление." + }, + "order_number": { + "type": "string", + "description": "Номер заказа, к которому относится отправление." + }, + "parent_posting_number": { + "type": "string", + "description": "Номер родительского отправления, в результате разделения которого появилось текущее." + }, + "pickup_code_verified_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время успешной валидации кода курьера. Чтобы проверить код курьера, воспользуйтесь методом [/v1/posting/fbs/pick-up-code/verify](#operation/PostingAPI_PostingFBSPickupCodeVerify)." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "items": { + "$ref": "#/components/schemas/v3FbsPostingProduct" + }, + "type": "array", + "description": "Список товаров в отправлении." + }, + "prr_option": { + "type": "string", + "description": "Код услуги погрузочно-разгрузочных работ:\n- `lift` — подъём на лифте.\n- `stairs` — подъём по лестнице.\n- `none` — покупатель отказался от услуги, поднимать товары не нужно.\n- `delivery_default` — доставка включена в стоимость, по условиям оферты нужно доставить товар на этаж.\n\nПараметр актуален для КГТ-отправлений с доставкой силами продавца или интегрированной службой.\n" + }, + "quantum_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор эконом-товара." + }, + "requirements": { + "$ref": "#/components/schemas/v3FbsPostingRequirementsV3" + }, + "shipment_date": { + "format": "date-time", + "type": "string", + "description": "Дата и время, до которой необходимо собрать отправление. Показываем рекомендованное время отгрузки. По истечении этого времени начнёт применяться новый тариф, информацию о нём уточняйте в поле `tariffication`." + }, + "status": { + "type": "string", + "description": "Статус отправления:\n- `acceptance_in_progress` — идёт приёмка,\n- `arbitration` — арбитраж,\n- `awaiting_approve` — ожидает подтверждения,\n- `awaiting_deliver` — ожидает отгрузки,\n- `awaiting_packaging` — ожидает упаковки,\n- `awaiting_registration` — ожидает регистрации,\n- `awaiting_verification` — создано,\n- `cancelled` — отменено,\n- `cancelled_from_split_pending` — отменён из-за разделения отправления,\n- `client_arbitration` — клиентский арбитраж доставки,\n- `delivering` — доставляется,\n- `driver_pickup` — у водителя,\n- `not_accepted` — не принят на сортировочном центре,\n- `sent_by_seller` — отправлено продавцом.\n" + }, + "substatus": { + "type": "string", + "description": "Подстатус отправления:\n- `posting_acceptance_in_progress`— идёт приёмка,\n- `posting_in_arbitration` — арбитраж,\n- `posting_created` — создано,\n- `posting_in_carriage` — в перевозке,\n- `posting_not_in_carriage` — не добавлено в перевозку,\n- `posting_registered` — зарегистрировано,\n- `posting_transferring_to_delivery` (`status=awaiting_deliver`) — передаётся в доставку,\n- `posting_awaiting_passport_data` — ожидает паспортных данных, \n- `posting_created` — создано,\n- `posting_awaiting_registration` — ожидает регистрации,\n- `posting_registration_error` — ошибка регистрации,\n- `posting_transferring_to_delivery` (`status=awaiting_registration`) — передаётся курьеру,\n- `posting_split_pending` — создано,\n- `posting_canceled` — отменено,\n- `posting_in_client_arbitration` — клиентский арбитраж доставки,\n- `posting_delivered` — доставлено,\n- `posting_received` — получено,\n- `posting_conditionally_delivered` — условно доставлено,\n- `posting_in_courier_service` — курьер в пути,\n- `posting_in_pickup_point` — в пункте выдачи,\n- `posting_on_way_to_city` — в пути в ваш город,\n- `posting_on_way_to_pickup_point` — в пути в пункт выдачи,\n- `posting_returned_to_warehouse` — возвращено на склад,\n- `posting_transferred_to_courier_service` — передаётся в службу доставки,\n- `posting_driver_pick_up` — у водителя,\n- `posting_not_in_sort_center` — не принято на сортировочном центре,\n- `sent_by_seller` — отправлено продавцом.\n" + }, + "tpl_integration_type": { + "type": "string", + "description": "Тип интеграции со службой доставки:\n - `ozon` — доставка службой Ozon.\n - `3pl_tracking` — доставка интегрированной службой.\n - `non_integrated` — доставка сторонней службой.\n - `aggregator` — доставка через партнёрскую доставку Ozon.\n - `hybryd` — схема доставки Почты России.\n" + }, + "tracking_number": { + "type": "string", + "description": "Трек-номер отправления." + }, + "tariffication": { + "items": { + "$ref": "#/components/schemas/v3FbsTariffication" + }, + "type": "array", + "description": "Информация по тарификации отгрузки." + } + }, + "type": "object", + "title": "object" + }, + "postingv3GetFbsPostingUnfulfilledListResponseResult": { + "properties": { + "count": { + "format": "int64", + "type": "integer", + "description": "Счётчик элементов в ответе." + }, + "postings": { + "items": { + "$ref": "#/components/schemas/v3FbsPosting" + }, + "type": "array", + "description": "Список отправлений и подробная информация по каждому." + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "postingv3GetFbsPostingUnfulfilledListResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/postingv3GetFbsPostingUnfulfilledListResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "postinglistV3status": { + "type": "object", + "title": "object", + "description": "Период, в который последний раз изменялся статус у отправлений.", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "Дата начала периода." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания периода." + } + } + }, + "postingv3GetFbsPostingListRequestFilter": { + "required": [ + "since", + "to" + ], + "properties": { + "delivery_method_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "description": "Идентификатор способа доставки. Можно получить с помощью метода [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList).", + "type": "array" + }, + "is_quantum": { + "type": "boolean", + "description": "Укажите `true`, чтобы получить только отправления квантов.\n\nПо умолчанию — `false`, в ответе придут все отправления.\n" + }, + "order_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор заказа." + }, + "provider_id": { + "items": { + "format": "int64", + "type": "integer" + }, + "description": "Идентификатор службы доставки. Можно получить с помощью метода [/v1/delivery-method/list](#operation/WarehouseAPI_DeliveryMethodList).", + "type": "array" + }, + "since": { + "format": "date-time", + "type": "string", + "description": "Дата начала периода, за который нужно получить список отправлений.\n\nФормат UTC: ГГГГ-ММ-ДДTЧЧ:ММ:ССZ.\n\nПример: 2019-08-24T14:15:22Z.\n" + }, + "to": { + "format": "date-time", + "type": "string", + "description": "Дата конца периода, за который нужно получить список отправлений.\n\nФормат UTC: ГГГГ-ММ-ДДTЧЧ:ММ:ССZ.\n\nПример: 2019-08-24T14:15:22Z.\n" + }, + "status": { + "type": "string", + "description": "Статус отправления:\n- `awaiting_registration` — ожидает регистрации,\n- `acceptance_in_progress` — идёт приёмка,\n- `awaiting_approve` — ожидает подтверждения,\n- `awaiting_packaging` — ожидает упаковки,\n- `awaiting_deliver` — ожидает отгрузки,\n- `arbitration` — арбитраж,\n- `client_arbitration` — клиентский арбитраж доставки,\n- `delivering` — доставляется,\n- `driver_pickup` — у водителя,\n- `delivered` — доставлено,\n- `cancelled` — отменено,\n- `not_accepted` — не принят на сортировочном центре,\n- `sent_by_seller` – отправлено продавцом.\n" + }, + "warehouse_id": { + "items": { + "format": "int64", + "type": "string" + }, + "type": "array", + "description": "Идентификатор склада. Можно получить с помощью метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList)." + }, + "last_changed_status_date": { + "$ref": "#/components/schemas/postinglistV3status" + } + }, + "type": "object", + "title": "object", + "description": "Фильтр." + }, + "postingv3GetFbsPostingListRequest": { + "required": [ + "filter", + "limit", + "offset" + ], + "properties": { + "dir": { + "type": "string", + "description": "Направление сортировки:\n - `asc` — по возрастанию,\n - `desc` — по убыванию.\n" + }, + "filter": { + "$ref": "#/components/schemas/postingv3GetFbsPostingListRequestFilter" + }, + "limit": { + "format": "int64", + "type": "integer", + "description": "Количество значений в ответе:\n - максимум — 1000,\n - минимум — 1.\n" + }, + "offset": { + "format": "int64", + "type": "integer", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента." + }, + "with": { + "$ref": "#/components/schemas/postingv3FbsPostingWithParams" + } + }, + "type": "object", + "title": "object" + }, + "v3GetFbsPostingListResponseV3Result": { + "properties": { + "has_next": { + "type": "boolean", + "description": "Признак, что в ответе вернули не весь массив отправлений:\n- `true` — необходимо сделать новый запрос с другим значением `offset`, чтобы получить информацию об остальных отправлениях;\n- `false` — в ответе вернули весь массив отправлений для фильтра, который был задан в запросе.\n" + }, + "postings": { + "items": { + "$ref": "#/components/schemas/v3FbsPosting" + }, + "type": "array", + "description": "Информация об отправлении." + } + }, + "type": "object", + "title": "object", + "description": "Массив отправлений." + }, + "v3GetFbsPostingListResponseV3": { + "properties": { + "result": { + "$ref": "#/components/schemas/v3GetFbsPostingListResponseV3Result" + } + }, + "type": "object", + "title": "object" + }, + "postingv3FbsPostingWithParamsExamplars": { + "properties": { + "analytics_data": { + "type": "boolean", + "description": "Добавить в ответ данные аналитики." + }, + "barcodes": { + "type": "boolean", + "description": "Добавить в ответ штрихкоды отправления." + }, + "financial_data": { + "type": "boolean", + "description": "Добавить в ответ финансовые данные." + }, + "legal_info": { + "type": "boolean", + "description": "Добавить в ответ юридическую информацию." + }, + "product_exemplars": { + "type": "boolean", + "description": "Добавить в ответ данные о продуктах и их экземплярах." + }, + "related_postings": { + "type": "boolean", + "description": "Добавить в ответ номера связанных отправлений. Связанные отправления — те, на которое было разделено родительское отправление при сборке.\n" + }, + "translit": { + "type": "boolean", + "description": "Выполнить транслитерацию возвращаемых значений." + } + }, + "type": "object", + "title": "object", + "description": "Дополнительные поля, которые нужно добавить в ответ." + }, + "postingv3GetFbsPostingRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + }, + "with": { + "$ref": "#/components/schemas/postingv3FbsPostingWithParamsExamplars" + } + }, + "type": "object", + "title": "object" + }, + "v3AdditionalDataItem": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "title": "object" + }, + "v3Addressee": { + "properties": { + "name": { + "type": "string", + "description": "Имя покупателя." + }, + "phone": { + "type": "string", + "description": "Контактный телефон. \n\nВсегда возвращает пустую строку `\"\"`.\n" + } + }, + "type": "object", + "title": "object", + "description": "Контактные данные получателя." + }, + "FbsPostingDetailCourier": { + "type": "object", + "title": "object", + "description": "Данные о курьере.", + "properties": { + "car_model": { + "type": "string", + "description": "Модель автомобиля." + }, + "car_number": { + "type": "string", + "description": "Номер автомобиля." + }, + "name": { + "type": "string", + "description": "Полное имя курьера." + }, + "phone": { + "type": "string", + "description": "Телефон курьера. \n\nВсегда возвращает пустую строку `\"\"`.\n" + } + } + }, + "v3Customer": { + "properties": { + "address": { + "$ref": "#/components/schemas/v3Address" + }, + "customer_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор покупателя." + }, + "name": { + "type": "string", + "description": "Имя покупателя." + }, + "phone": { + "type": "string", + "description": "Контактный телефон. \n\nВсегда возвращает пустую строку `\"\"`.\n" + } + }, + "type": "object", + "title": "object", + "description": "Данные о покупателе." + }, + "v3FbsPostingProductExemplarInfoV3": { + "type": "object", + "title": "object", + "properties": { + "exemplar_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор экземпляра." + }, + "mandatory_mark": { + "type": "string", + "description": "Обязательная маркировка «Честный ЗНАК»." + }, + "gtd": { + "type": "string", + "description": "Номер грузовой таможенной декларации (ГТД)." + }, + "is_gtd_absent": { + "type": "boolean", + "description": "Признак того, что не указан номер таможенной декларации." + }, + "rnpt": { + "type": "string", + "description": "Регистрационный номер партии товара (РНПТ)." + }, + "is_rnpt_absent": { + "type": "boolean", + "description": "Признак того, что не указан регистрационный номер партии товара (РНПТ)." + } + } + }, + "v3FbsPostingExemplarProductV3": { + "type": "object", + "title": "object", + "description": "Список товаров и экземпляров.", + "properties": { + "exemplars": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v3FbsPostingProductExemplarInfoV3" + }, + "description": "Информация по экземплярам." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v3FbsPostingProductExemplarsV3": { + "type": "object", + "title": "object", + "properties": { + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v3FbsPostingExemplarProductV3" + } + } + }, + "description": "Информация по продуктам и их экзмеплярам.\n\nОтвет содержит поле `product_exemplars`, если в запросе передан признак `with.product_exemplars = true`.\n" + }, + "v3Dimensions": { + "properties": { + "height": { + "type": "string", + "description": "Высота упаковки." + }, + "length": { + "type": "string", + "description": "Длина товара." + }, + "weight": { + "type": "string", + "description": "Вес товара в упаковке." + }, + "width": { + "type": "string", + "description": "Ширина упаковки." + } + }, + "type": "object", + "title": "object", + "description": "Размеры товара." + }, + "v3PostingProductDetail": { + "properties": { + "dimensions": { + "$ref": "#/components/schemas/v3Dimensions" + }, + "mandatory_mark": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Обязательная маркировка товара.", + "deprecated": true + }, + "name": { + "type": "string", + "description": "Название." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "price": { + "type": "string", + "description": "Цена товара с учётом скидок — это значение показывается на карточке товара." + }, + "jw_uin": { + "type": "array of strings", + "description": "Уникальный идентификационный номер (УИН) ювелирного изделия." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Совпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "is_blr_traceable": { + "type": "boolean", + "description": "Признак прослеживаемости товара." + }, + "is_marketplace_buyout": { + "type": "boolean", + "description": "Признак выкупа товара." + }, + "quantity": { + "format": "int32", + "type": "integer", + "description": "Количество товара." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара на Ozon." + } + }, + "type": "object", + "title": "object", + "description": "Размеры товара." + }, + "FbsPostingDetailPrrOption": { + "type": "object", + "title": "object", + "description": "Информация об услуге погрузочно-разгрузочных работ. Актуально для КГТ-отправлений с доставкой силами продавца или интегрированной службой.", + "properties": { + "code": { + "type": "string", + "description": "Код услуги погрузочно-разгрузочных работ:\n- `lift` — подъём на лифте.\n- `stairs` — подъём по лестнице.\n- `none` — покупатель отказался от услуги, поднимать товары не нужно.\n- `delivery_default` — доставка включена в стоимость, по условиям оферты нужно доставить товар на этаж.\n" + }, + "price": { + "type": "string", + "description": "Стоимость услуги, которую Ozon компенсирует продавцу." + }, + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "floor": { + "type": "string", + "description": "Этаж, на который нужно поднять товар." + } + } + }, + "v3FbsPostingDetailRelatedPostings": { + "type": "object", + "title": "object", + "description": "Связанные отправления.", + "properties": { + "related_posting_numbers": { + "items": { + "type": "string" + }, + "description": "Список номеров связанных отправлений." + } + } + }, + "v3FbsPostingDetail": { + "properties": { + "additional_data": { + "items": { + "$ref": "#/components/schemas/v3AdditionalDataItem" + }, + "type": "array" + }, + "addressee": { + "$ref": "#/components/schemas/v3Addressee" + }, + "analytics_data": { + "$ref": "#/components/schemas/v3FbsPostingAnalyticsData" + }, + "available_actions": { + "items": { + "type": "string" + }, + "description": "Доступные действия и информация об отправлении:\n- `arbitration` — открыть спор;\n- `awaiting_delivery` — перевести в статус «Ожидает отгрузки»;\n- `can_create_chat` — начать чат с покупателем;\n- `cancel` — отменить отправление;\n- `click_track_number` — просмотреть по трек-номеру историю изменения статусов в личном кабинете;\n- `customer_phone_available` — телефон покупателя;\n- `has_weight_products` — весовые товары в отправлении;\n- `hide_region_and_city` — скрыть регион и город покупателя в отчёте;\n- `invoice_get` — получить информацию из счёта-фактуры;\n- `invoice_send` — создать счёт-фактуру;\n- `invoice_update` — отредактировать счёт-фактуру;\n- `label_download_big` — скачать большую этикетку;\n- `label_download_small` — скачать маленькую этикетку;\n- `label_download` — скачать этикетку;\n- `non_int_delivered` — перевести в статус «Условно доставлен»;\n- `non_int_delivering` — перевести в статус «Доставляется»;\n- `non_int_last_mile` — перевести в статус «Курьер в пути»;\n- `product_cancel` — отменить часть товаров в отправлении;\n- `set_cutoff` — необходимо указать дату отгрузки, воспользуйтесь методом [/v1/posting/cutoff/set](#operation/PostingAPI_SetPostingCutoff);\n- `set_timeslot` — изменить время доставки покупателю;\n- `set_track_number` — указать или изменить трек-номер;\n- `ship_async_in_process` — отправление собирается;\n- `ship_async_retry` — собрать отправление повторно после ошибки сборки;\n- `ship_async` — собрать отправление;\n- `ship_with_additional_info` — необходимо заполнить дополнительную информацию;\n- `ship` — собрать отправление;\n- `update_cis` — изменить дополнительную информацию.\n" + }, + "barcodes": { + "$ref": "#/components/schemas/v3Barcodes" + }, + "cancellation": { + "$ref": "#/components/schemas/v3Cancellation" + }, + "courier": { + "$ref": "#/components/schemas/FbsPostingDetailCourier" + }, + "customer": { + "$ref": "#/components/schemas/v3Customer" + }, + "delivering_date": { + "format": "date-time", + "type": "string", + "description": "Дата передачи отправления в доставку." + }, + "delivery_method": { + "$ref": "#/components/schemas/v3DeliveryMethod" + }, + "delivery_price": { + "type": "string", + "description": "Стоимость доставки." + }, + "financial_data": { + "$ref": "#/components/schemas/v3PostingFinancialData" + }, + "in_process_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала обработки отправления." + }, + "is_express": { + "type": "boolean", + "description": "Если использовалась быстрая доставка Ozon Express — `true`." + }, + "is_multibox": { + "type": "boolean", + "description": "Признак, что в отправлении есть многокоробочный товар и нужно передать количество коробок для него:\n\n- `true` — до сборки передайте количество коробок через метод [/v3/posting/multiboxqty/set](#operation/PostingAPI_PostingMultiBoxQtySetV3).\n- `false` — отправление собрано с указанием количества коробок в параметре `multi_box_qty` или в отправлении нет многокоробочного товара.\n" + }, + "legal_info": { + "$ref": "#/components/schemas/v2FboSinglePostingLegalInfo" + }, + "multi_box_qty": { + "type": "integer", + "format": "int32", + "description": "Количество коробок, в которые упакован товар." + }, + "optional": { + "$ref": "#/components/schemas/v3FbsPostingDetailOptional" + }, + "order_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор заказа, к которому относится отправление." + }, + "order_number": { + "type": "string", + "description": "Номер заказа, к которому относится отправление." + }, + "parent_posting_number": { + "type": "string", + "description": "Номер родительского отправления, в результате разделения которого появилось текущее." + }, + "pickup_code_verified_at": { + "type": "string", + "format": "date-time", + "description": "Дата и время успешной валидации кода курьера. Чтобы проверить код курьера, воспользуйтесь методом [/v1/posting/fbs/pick-up-code/verify](#operation/PostingAPI_PostingFBSPickupCodeVerify)." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "product_exemplars": { + "$ref": "#/components/schemas/v3FbsPostingProductExemplarsV3" + }, + "products": { + "items": { + "$ref": "#/components/schemas/v3PostingProductDetail" + }, + "type": "array", + "description": "Массив товаров в отправлении." + }, + "provider_status": { + "type": "string", + "description": "Статус службы доставки." + }, + "prr_option": { + "$ref": "#/components/schemas/FbsPostingDetailPrrOption" + }, + "related_postings": { + "$ref": "#/components/schemas/v3FbsPostingDetailRelatedPostings" + }, + "requirements": { + "$ref": "#/components/schemas/v3FbsPostingRequirementsV3" + }, + "shipment_date": { + "format": "date-time", + "type": "string", + "description": "Дата и время, до которой необходимо собрать отправление. Показываем рекомендованное время отгрузки. По истечении этого времени начнёт применяться новый тариф, информацию о нём уточняйте в поле `tariffication`." + }, + "status": { + "type": "string", + "description": "Статус отправления:\n- `acceptance_in_progress` — идёт приёмка,\n- `arbitration` — арбитраж,\n- `awaiting_approve` — ожидает подтверждения,\n- `awaiting_deliver` — ожидает отгрузки,\n- `awaiting_packaging` — ожидает упаковки,\n- `awaiting_registration` — ожидает регистрации,\n- `awaiting_verification` — создано,\n- `cancelled` — отменено,\n- `cancelled_from_split_pending` — отменён из-за разделения отправления,\n- `client_arbitration` — клиентский арбитраж доставки,\n- `delivered` — доставлено,\n- `delivering` — доставляется,\n- `driver_pickup` — у водителя,\n- `not_accepted` — не принят на сортировочном центре,\n- `sent_by_seller` – отправлено продавцом.\n" + }, + "substatus": { + "type": "string", + "description": "Подстатус отправления:\n- `posting_acceptance_in_progress` — идёт приёмка,\n- `posting_in_arbitration` — арбитраж,\n- `posting_created` — создано,\n- `posting_in_carriage` — в перевозке,\n- `posting_not_in_carriage` — не добавлено в перевозку,\n- `posting_registered` — зарегистрировано,\n- `posting_transferring_to_delivery` (`status=awaiting_deliver`) — передаётся в доставку,\n- `posting_awaiting_passport_data` — ожидает паспортных данных, \n- `posting_created` — создано,\n- `posting_awaiting_registration` — ожидает регистрации,\n- `posting_registration_error` — ошибка регистрации,\n- `posting_transferring_to_delivery` (`status=awaiting_registration`) — передаётся курьеру,\n- `posting_split_pending` — создано,\n- `posting_canceled` — отменено,\n- `posting_in_client_arbitration` — клиентский арбитраж доставки,\n- `posting_delivered` — доставлено,\n- `posting_received` — получено,\n- `posting_conditionally_delivered` — условно доставлено,\n- `posting_in_courier_service` — курьер в пути,\n- `posting_in_pickup_point` — в пункте выдачи,\n- `posting_on_way_to_city` — в пути в ваш город,\n- `posting_on_way_to_pickup_point` — в пути в пункт выдачи,\n- `posting_returned_to_warehouse` — возвращено на склад,\n- `posting_transferred_to_courier_service` — передаётся в службу доставки,\n- `posting_driver_pick_up` — у водителя,\n- `posting_not_in_sort_center` — не принято на сортировочном центре,\n- `sent_by_seller` — отправлено продавцом.\n" + }, + "previous_substatus": { + "type": "string", + "description": "Предыдущий подстатус отправления. Возможные значения:\n- `posting_acceptance_in_progress` — идёт приёмка,\n- `posting_in_arbitration` — арбитраж,\n- `posting_created` — создано,\n- `posting_in_carriage` — в перевозке,\n- `posting_not_in_carriage` — не добавлено в перевозку,\n- `posting_registered` — зарегистрировано,\n- `posting_transferring_to_delivery` (`status=awaiting_deliver`) — передаётся в доставку,\n- `posting_awaiting_passport_data` — ожидает паспортных данных, \n- `posting_created` — создано,\n- `posting_awaiting_registration` — ожидает регистрации,\n- `posting_registration_error` — ошибка регистрации,\n- `posting_transferring_to_delivery` (`status=awaiting_registration`) — передаётся курьеру,\n- `posting_split_pending` — создано,\n- `posting_canceled` — отменено,\n- `posting_in_client_arbitration` — клиентский арбитраж доставки,\n- `posting_delivered` — доставлено,\n- `posting_received` — получено,\n- `posting_conditionally_delivered` — условно доставлено,\n- `posting_in_courier_service` — курьер в пути,\n- `posting_in_pickup_point` — в пункте выдачи,\n- `posting_on_way_to_city` — в пути в ваш город,\n- `posting_on_way_to_pickup_point` — в пути в пункт выдачи,\n- `posting_returned_to_warehouse` — возвращено на склад,\n- `posting_transferred_to_courier_service` — передаётся в службу доставки,\n- `posting_driver_pick_up` — у водителя,\n- `posting_not_in_sort_center` — не принято на сортировочном центре,\n- `sent_by_seller` — отправлено продавцом.\n" + }, + "tpl_integration_type": { + "type": "string", + "description": "Тип интеграции со службой доставки:\n - `ozon` — доставка через Ozon логистику.\n - `aggregator` — доставка внешней службой, Ozon регистрирует заказ.\n - `3pl_tracking` — доставка внешней службой, продавец регистрирует заказ.\n - `non_integrated` — доставка силами продавца.\n" + }, + "tracking_number": { + "type": "string", + "description": "Трек-номер отправления." + }, + "tariffication": { + "items": { + "$ref": "#/components/schemas/v3FbsTariffication" + }, + "type": "array", + "description": "Информация по тарификации отгрузки." + } + }, + "type": "object", + "title": "object", + "description": "Информация об отправлении." + }, + "v3GetFbsPostingResponseV3": { + "properties": { + "result": { + "$ref": "#/components/schemas/v3FbsPostingDetail" + } + }, + "type": "object", + "title": "object" + }, + "postingGetFbsPostingByBarcodeRequest": { + "properties": { + "barcode": { + "type": "string", + "description": "Штрихкод отправления. Можно получить с помощью методов: [/v3/posting/fbs/get](#operation/PostingAPI_GetFbsPostingV3), [/v3/posting/fbs/list](#operation/PostingAPI_GetFbsPostingListV3) и [/v3/posting/fbs/unfulfilled/list](#operation/PostingAPI_GetFbsPostingUnfulfilledList) в массиве `barcodes`.\n" + } + }, + "type": "object", + "title": "object" + }, + "FbsPostingFbsPostingAnalyticsData": { + "properties": { + "city": { + "type": "string", + "description": "Город доставки." + }, + "delivery_type": { + "type": "string", + "description": "Способ доставки." + }, + "is_legal": { + "type": "boolean", + "description": "Признак, что получатель юридическое лицо:\n - `true` — юридическое лицо,\n - `false` — физическое лицо.\n" + }, + "is_premium": { + "type": "boolean", + "description": "Наличие подписки Premium." + }, + "payment_type_group_name": { + "type": "string", + "description": "Способ оплаты: \n- `картой онлайн`,\n- `Ozon Карта`,\n- `автосписание с Ozon Карты при выдаче`,\n- `сохранённой картой при получении`,\n- `Система Быстрых Платежей`, \n- `Ozon Рассрочка`, \n- `оплата на расчётный счёт`,\n- `SberPay`.\n" + }, + "region": { + "type": "string", + "description": "Регион доставки." + } + }, + "type": "object", + "title": "object", + "description": "Аналитические данные." + }, + "FbsPostingBarcodes": { + "properties": { + "lower_barcode": { + "type": "string", + "description": "Нижний штрихкод на маркировке отправления." + }, + "upper_barcode": { + "type": "string", + "description": "Верхний штрихкод на маркировке отправления." + } + }, + "type": "object", + "title": "object", + "description": "Штрихкоды отправления." + }, + "v2FbsPostingProduct": { + "properties": { + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "price": { + "type": "string", + "description": "Цена товара." + }, + "quantity": { + "format": "int64", + "type": "integer", + "description": "Количество товара в отправлении." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "type": "object", + "title": "object" + }, + "v2FbsPosting": { + "properties": { + "analytics_data": { + "$ref": "#/components/schemas/FbsPostingFbsPostingAnalyticsData" + }, + "barcodes": { + "$ref": "#/components/schemas/FbsPostingBarcodes" + }, + "cancel_reason_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены отправления." + }, + "created_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время создания отправления." + }, + "financial_data": { + "$ref": "#/components/schemas/v2PostingFinancialData" + }, + "in_process_at": { + "format": "date-time", + "type": "string", + "description": "Дата и время начала обработки отправления." + }, + "order_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор заказа, к которому относится отправление." + }, + "order_number": { + "type": "string", + "description": "Номер заказа, к которому относится отправление." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "products": { + "items": { + "$ref": "#/components/schemas/v2FbsPostingProduct" + }, + "type": "array", + "description": "Список товаров в отправлении." + }, + "shipment_date": { + "format": "date-time", + "type": "string", + "description": "Дата и время, до которой необходимо собрать отправление. Если отправление не собрать к этой дате — оно автоматически отменится." + }, + "status": { + "type": "string", + "description": "Статус отправления." + } + }, + "type": "object", + "title": "object", + "description": "Результаты запроса." + }, + "v2FbsPostingResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/v2FbsPosting" + } + }, + "type": "object", + "title": "object", + "description": "Информация об отправлении." + }, + "postingv3PostingMultiBoxQtySetV3Request": { + "required": [ + "posting_number", + "multi_box_qty" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Идентификатор многокоробочного отправления." + }, + "multi_box_qty": { + "type": "integer", + "format": "int64", + "description": "Количество коробок, в которые упакован товар." + } + } + }, + "postingv3PostingMultiBoxQtySetV3ResponseResult": { + "type": "object", + "title": "object", + "description": "Результат передачи количества коробок.", + "properties": { + "result": { + "type": "boolean", + "description": "Возможные значения:\n- `true` — значение передано успешно.\n- `false` — при передаче произошла ошибка. Попробуйте снова.\n" + } + } + }, + "postingv3PostingMultiBoxQtySetV3Response": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/postingv3PostingMultiBoxQtySetV3ResponseResult" + } + } + }, + "PostingProductChangeRequestItem": { + "required": [ + "sku", + "weightReal" + ], + "properties": { + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "weightReal": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "description": "Вес единиц товара в отправлении." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingProductChangeRequest": { + "required": [ + "items", + "posting_number" + ], + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/PostingProductChangeRequestItem" + }, + "type": "array", + "description": "Информация о товарах." + }, + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingProductChangeResponse": { + "properties": { + "result": { + "type": "string", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "v2FbsPostingProductCountryListRequest": { + "type": "object", + "title": "object", + "properties": { + "name_search": { + "type": "string", + "description": "Фильтрация по строке." + } + } + }, + "v2FbsPostingProductCountryListResponseResult": { + "type": "object", + "title": "object", + "properties": { + "name": { + "type": "string", + "description": "Название страны на русском языке." + }, + "country_iso_code": { + "type": "string", + "description": "ISO код страны." + } + } + }, + "v2FbsPostingProductCountryListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/v2FbsPostingProductCountryListResponseResult" + }, + "description": "Список стран-изготовителей и ISO коды." + } + } + }, + "v2FbsPostingProductCountrySetRequest": { + "required": [ + "posting_number", + "product_id", + "country_iso_code" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "country_iso_code": { + "type": "string", + "description": "Двухбуквенный код добавляемой страны по стандарту ISO_3166-1.\n\nСписок доступных стран-изготовителей и их ISO коды можно получить с помощью метода [/v2/posting/fbs/product/country/list](#operation/PostingAPI_ListCountryProductFbsPostingV2).\n" + } + } + }, + "v2FbsPostingProductCountrySetResponse": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "is_gtd_needed": { + "type": "boolean", + "description": "Признак того, что необходимо передать номер грузовой таможенной декларации (ГТД) для продукта и отправления." + } + } + }, + "v1GetRestrictionsRequest": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления, для которого нужно определить ограничения." + } + }, + "required": [ + "posting_number" + ] + }, + "v1Restriction": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "max_posting_weight": { + "type": "number", + "format": "double", + "description": "Ограничение по максимальному весу в граммах." + }, + "min_posting_weight": { + "type": "number", + "format": "double", + "description": "Ограничение по минимальному весу в граммах." + }, + "width": { + "type": "number", + "format": "double", + "description": "Ограничение по ширине в сантиметрах." + }, + "length": { + "type": "number", + "format": "double", + "description": "Ограничение по длине в сантиметрах." + }, + "height": { + "type": "number", + "format": "double", + "description": "Ограничение по высоте в сантиметрах." + }, + "max_posting_price": { + "type": "number", + "format": "double", + "description": "Ограничение по максимальной стоимости отправления в рублях." + }, + "min_posting_price": { + "type": "number", + "format": "double", + "description": "Ограничение по минимальной стоимости отправления в рублях." + } + } + }, + "v1GetRestrictionsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1Restriction" + } + } + }, + "postingPostingFBSPackageLabelRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingFBSPackageLabelResponse": { + "properties": { + "file_content": { + "format": "byte", + "type": "string", + "description": "Содержание файла в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + }, + "type": "object", + "title": "object" + }, + "v1CreateLabelBatchRequest": { + "required": [ + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "description": "Номера отправлений, для которых нужны этикетки.", + "items": { + "type": "string" + } + } + } + }, + "v1CreateLabelBatchResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "task_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор задания на формирование этикеток." + } + } + }, + "v1CreateLabelBatchResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1CreateLabelBatchResponseResult" + } + } + }, + "v2CreateLabelBatchResponseResultTasks": { + "type": "object", + "title": "object", + "properties": { + "task_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор задания на формирование этикеток. В зависимости от типа этикетки передайте значение в метод [/v1/posting/fbs/package-label/get](#operation/PostingAPI_GetLabelBatch)." + }, + "task_type": { + "type": "string", + "description": "Тип задания на формирование этикеток:\n- `big_label` — для обычной этикетки,\n- `small_label` — для маленькой этикетки.\n" + } + } + }, + "v2CreateLabelBatchResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "tasks": { + "type": "array", + "description": "Список заданий.", + "items": { + "$ref": "#/components/schemas/v2CreateLabelBatchResponseResultTasks" + } + } + } + }, + "v2CreateLabelBatchResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v2CreateLabelBatchResponseResult" + } + } + }, + "v1GetLabelBatchRequest": { + "type": "object", + "title": "object", + "properties": { + "task_id": { + "type": "integer", + "format": "int64", + "description": "Номер задания на формирование этикеток из ответа метода [/v1/posting/fbs/package-label/create](#operation/PostingAPI_CreateLabelBatch)." + } + }, + "required": [ + "task_id" + ] + }, + "v1GetLabelBatchResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "error": { + "type": "string", + "description": "Код ошибки." + }, + "file_url": { + "type": "string", + "description": "Ссылка на файл с этикетками." + }, + "status": { + "type": "string", + "description": "Статус формирования этикеток:\n- `pending` — задание в очереди.\n- `in_progress` — формируются.\n- `completed` — файл с этикетками готов.\n- `error` — при формировании файла произошла ошибка.\n" + } + } + }, + "v1GetLabelBatchResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1GetLabelBatchResponseResult" + } + } + }, + "postingCancelReasonRequest": { + "required": [ + "related_posting_numbers" + ], + "type": "object", + "title": "object", + "properties": { + "related_posting_numbers": { + "type": "array", + "description": "Номера отправлений.", + "items": { + "type": "string" + } + } + } + }, + "relatedPostingCancelReasons": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор причины отмены:\n- `352` — товар закончился на складе продавца. \n- `400` — остался только бракованный товар.\n- `401` — продавец отклонил арбитраж.\n- `402` — другое (вина продавца).\n- `665` — покупатель не забрал заказ.\n- `666` — возврат из службы доставки: нет доставки в указанный регион.\n- `667` — заказ утерян службой доставки.\n" + }, + "title": { + "type": "string", + "description": "Описание причины отмены." + }, + "type_id": { + "type": "string", + "description": "Инициатор отмены отправления: \n - `buyer` — покупатель,\n - `seller` — продавец.\n" + } + } + }, + "relatedPostingCancelReason": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "reasons": { + "type": "array", + "description": "Информация о причинах отмены.", + "items": { + "$ref": "#/components/schemas/relatedPostingCancelReasons" + } + } + } + }, + "postingCancelReasonResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Результат запроса.", + "items": { + "$ref": "#/components/schemas/relatedPostingCancelReason" + }, + "type": "array" + } + } + }, + "postingCancelReason": { + "properties": { + "id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены.\n" + }, + "is_available_for_cancellation": { + "type": "boolean", + "description": "Результат отмены отправления. `true`, если запрос доступен для отмены." + }, + "title": { + "type": "string", + "description": "Название категории." + }, + "type_id": { + "type": "string", + "description": "Инициатор отмены отправления:\n- `buyer` — покупатель,\n- `seller` — продавец.\n" + } + }, + "type": "object", + "title": "object" + }, + "postingCancelReasonListResponse": { + "properties": { + "result": { + "description": "Результат работы метода.", + "items": { + "$ref": "#/components/schemas/postingCancelReason" + }, + "type": "array" + } + }, + "type": "object", + "title": "object" + }, + "PostingProductCancelRequestItem": { + "required": [ + "quantity", + "sku" + ], + "properties": { + "quantity": { + "format": "int32", + "type": "integer", + "description": "Количество товара в отправлении." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingProductCancelRequest": { + "required": [ + "cancel_reason_id", + "cancel_reason_message", + "items", + "posting_number" + ], + "properties": { + "cancel_reason_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены отправления товара." + }, + "cancel_reason_message": { + "type": "string", + "description": "Обязательное поле. Дополнительная информация по отмене." + }, + "items": { + "items": { + "$ref": "#/components/schemas/PostingProductCancelRequestItem" + }, + "type": "array", + "description": "Информация о товарах." + }, + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingPostingProductCancelResponse": { + "properties": { + "result": { + "type": "string", + "description": "Номер отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingCancelFbsPostingRequest": { + "properties": { + "cancel_reason_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор причины отмены отправления." + }, + "cancel_reason_message": { + "type": "string", + "description": "Дополнительная информация по отмене. Если `cancel_reason_id = 402`, параметр обязательный." + }, + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "postingBooleanResponse": { + "properties": { + "result": { + "type": "boolean", + "description": "Результат обработки запроса. `true`, если запрос выполнился без ошибок." + } + }, + "type": "object", + "title": "object" + }, + "postingMovePostingRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор отправления." + } + }, + "type": "object", + "title": "object" + }, + "v2MovePostingToAwaitingDeliveryRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор отправления. Максимальное количество в одном запросе — 100." + } + }, + "type": "object", + "title": "object" + }, + "v1PostingFBSPickupCodeVerifyRequest": { + "type": "object", + "properties": { + "pickup_code": { + "description": "Код курьера.", + "type": "string" + }, + "posting_number": { + "description": "Номер отправления.", + "type": "string" + } + }, + "required": [ + "pickup_code", + "posting_number" + ] + }, + "v1PostingFBSPickupCodeVerifyResponse": { + "type": "object", + "properties": { + "valid": { + "description": "`true`, если код корректный.\n", + "type": "boolean" + } + } + }, + "GetEtgbRequestDate": { + "required": [ + "from", + "to" + ], + "type": "object", + "title": "object", + "description": "Фильтр по периоду создания деклараций.", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "Дата начала." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания." + } + } + }, + "v1GetEtgbRequest": { + "required": [ + "date" + ], + "type": "object", + "title": "object", + "properties": { + "date": { + "$ref": "#/components/schemas/GetEtgbRequestDate" + } + } + }, + "GetEtgbResponseResultEtgb": { + "type": "object", + "title": "object", + "description": "Информация о декларации.", + "properties": { + "number": { + "type": "string", + "description": "Номер." + }, + "date": { + "type": "string", + "description": "Дата создания." + }, + "url": { + "type": "string", + "description": "Ссылка на файл.\n\nЕсли поле пустое и вам нужен файл, обратитесь в поддержку Ozon.\n" + } + } + }, + "GetEtgbResponseResult": { + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "etgb": { + "$ref": "#/components/schemas/GetEtgbResponseResultEtgb" + } + } + }, + "v1GetEtgbResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "array", + "description": "Результат запроса.", + "items": { + "$ref": "#/components/schemas/GetEtgbResponseResult" + } + } + } + }, + "v1PostingUnpaidLegalProductListRequest": { + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "limit": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "description": "Количество значений в ответе.\n", + "required": true + } + } + }, + "v1PostingUnpaidLegalProductListResponseProducts": { + "type": "object", + "title": "object", + "properties": { + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество экземпляров." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "image_url": { + "type": "string", + "description": "Ссылка на изображение товара." + } + } + }, + "v1PostingUnpaidLegalProductListResponse": { + "type": "object", + "title": "object", + "properties": { + "products": { + "type": "array", + "description": "Список неоплаченных товаров.", + "items": { + "$ref": "#/components/schemas/v1PostingUnpaidLegalProductListResponseProducts" + } + }, + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + } + } + }, + "CreatedAt": { + "type": "object", + "title": "object", + "description": "Период создания заявки.", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "Дата начала периода." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания периода." + } + } + }, + "v2ReturnsRfbsFilter": { + "type": "object", + "title": "object", + "description": "Фильтр.", + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "group_state": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Фильтр по статусам заявок:\n- `All` — все заявки.\n- `New` — новые.\n- `Delivering` — в пути.\n- `Checkout` — на проверке.\n- `Arbitration` — спорные.\n- `Approved` — согласованные.\n- `Rejected` — отклонённые.\n" + }, + "created_at": { + "$ref": "#/components/schemas/CreatedAt" + } + } + }, + "v2ReturnsRfbsListRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/v2ReturnsRfbsFilter" + }, + "last_id": { + "description": "Идентификатор последнего значения на странице. Оставьте это поле пустым при выполнении первого запроса.", + "type": "integer", + "format": "int32" + }, + "limit": { + "description": "Количество значений в ответе.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "limit" + ] + }, + "v2Product": { + "type": "object", + "title": "object", + "description": "Данные о товаре.", + "properties": { + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "currency_code": { + "type": "string", + "description": "Валюта ваших цен. Cовпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения: \n - `RUB` — российский рубль,\n - `BYN` — белорусский рубль,\n - `KZT` — тенге,\n - `EUR` — евро,\n - `USD` — доллар США,\n - `CNY` — юань.\n" + }, + "price": { + "type": "string", + "description": "Цена товара." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v2ReturnsRfbsListV2ResponseState": { + "type": "object", + "title": "object", + "description": "Статусы заявки и возврата денег.", + "properties": { + "group_state": { + "type": "string", + "description": "Статус заявки по применённому фильтру." + }, + "money_return_state_name": { + "type": "string", + "description": "Статус возврата денег." + }, + "state": { + "type": "string", + "description": "Статус заявки." + }, + "state_name": { + "type": "string", + "description": "Название статуса заявки на русском." + } + } + }, + "ReturnsRfbsListResponseReturns": { + "type": "object", + "title": "object", + "description": "Данные о заявках.", + "properties": { + "client_name": { + "type": "string", + "description": "Имя покупателя." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания заявки." + }, + "order_number": { + "type": "string", + "description": "Номер заказа." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "product": { + "$ref": "#/components/schemas/v2Product" + }, + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + }, + "return_number": { + "type": "string", + "description": "Номер заявки на возврат." + }, + "state": { + "$ref": "#/components/schemas/v2ReturnsRfbsListV2ResponseState" + } + } + }, + "v2ReturnsRfbsListResponse": { + "type": "object", + "title": "object", + "properties": { + "returns": { + "$ref": "#/components/schemas/ReturnsRfbsListResponseReturns" + } + } + }, + "v2ReturnsRfbsGetRequest": { + "type": "object", + "title": "object", + "description": null, + "properties": { + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки." + } + }, + "required": [ + "return_id" + ] + }, + "ReturnsRfbsGetV2ResponseAvailableAction": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор действия." + }, + "name": { + "type": "string", + "description": "Название действия." + } + } + }, + "ReturnsRfbsGetV2ResponseClientReturnMethodType": { + "type": "object", + "title": "object", + "description": "Данные о способе возврата.", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор." + }, + "name": { + "type": "string", + "description": "Название." + } + } + }, + "ReturnsRfbsGetV2ResponseRejectionReason": { + "type": "object", + "title": "object", + "properties": { + "hint": { + "type": "string", + "description": "Подсказка о дальнейших действиях с возвратом." + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор причины." + }, + "is_comment_required": { + "type": "boolean", + "description": "Признак, нужно ли прикладывать комментарий." + }, + "name": { + "type": "string", + "description": "Описание причины." + } + } + }, + "ReturnsRfbsGetV2ResponseReturnReason": { + "type": "object", + "title": "object", + "description": "Данные о причине возврата.", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор причины." + }, + "is_defect": { + "type": "boolean", + "description": "Признак, является ли товар бракованным." + }, + "name": { + "type": "string", + "description": "Описание причины." + } + } + }, + "v2ReturnsRfbsGetV2ResponseState": { + "type": "object", + "title": "object", + "description": "Данные о статусе возврата.", + "properties": { + "state": { + "type": "string", + "description": "Статус." + }, + "state_name": { + "type": "string", + "description": "Название статуса на русском." + } + } + }, + "ReturnsRfbsGetResponseReturns": { + "type": "object", + "title": "object", + "description": "Данные о заявке.", + "properties": { + "available_actions": { + "type": "array", + "description": "Данные о доступных действиях с заявкой.", + "items": { + "$ref": "#/components/schemas/ReturnsRfbsGetV2ResponseAvailableAction" + } + }, + "client_name": { + "type": "string", + "description": "Имя покупателя." + }, + "client_photo": { + "type": "array", + "description": "Ссылки на фотографии товара.", + "items": { + "type": "string" + } + }, + "client_return_method_type": { + "$ref": "#/components/schemas/ReturnsRfbsGetV2ResponseClientReturnMethodType" + }, + "comment": { + "type": "string", + "description": "Комментарий покупателя." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания заявки." + }, + "order_number": { + "type": "string", + "description": "Номер заказа." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "product": { + "$ref": "#/components/schemas/v2Product" + }, + "rejection_comment": { + "type": "string", + "description": "Комментарий об отклонении заявки." + }, + "rejection_reason": { + "type": "array", + "description": "Данные о причине отклонения заявки.", + "items": { + "$ref": "#/components/schemas/ReturnsRfbsGetV2ResponseRejectionReason" + } + }, + "return_method_description": { + "type": "string", + "description": "Способ возврата товара." + }, + "return_number": { + "type": "string", + "description": "Номер заявки на возврат." + }, + "return_reason": { + "$ref": "#/components/schemas/ReturnsRfbsGetV2ResponseReturnReason" + }, + "ru_post_tracking_number": { + "type": "string", + "description": "Трек-номер почтового отправления." + }, + "state": { + "$ref": "#/components/schemas/v2ReturnsRfbsGetV2ResponseState" + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + } + } + }, + "v2ReturnsRfbsGetResponse": { + "type": "object", + "title": "object", + "properties": { + "returns": { + "$ref": "#/components/schemas/ReturnsRfbsGetResponseReturns" + } + } + }, + "v2ReturnsRfbsRejectRequest": { + "type": "object", + "title": "object", + "properties": { + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + }, + "comment": { + "type": "string", + "description": "Комментарий.\n\nПередайте комментарий, если в ответе метода [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2) параметр `rejection_reason.is_comment_required` — `true`.\n" + }, + "rejection_reason_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор причины отмены.\n\nПередайте идентификатор из списка причин, полученного в ответе метода [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2) в параметре `rejection_reason`.\n" + } + }, + "required": [ + "return_id", + "rejection_reason_id" + ] + }, + "v2ReturnsRfbsCompensateRequest": { + "type": "object", + "title": "object", + "properties": { + "compensation_amount": { + "type": "string", + "description": "Сумма компенсации." + }, + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + } + }, + "required": [ + "return_id" + ] + }, + "v2ReturnsRfbsVerifyRequest": { + "type": "object", + "title": "object", + "properties": { + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + }, + "return_method_description": { + "type": "string", + "description": "Способ возврата товара." + } + }, + "required": [ + "return_id" + ] + }, + "v2ReturnsRfbsReceiveReturnRequest": { + "type": "object", + "title": "object", + "properties": { + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + } + }, + "required": [ + "return_id" + ] + }, + "v2ReturnsRfbsReturnMoneyRequest": { + "type": "object", + "title": "object", + "properties": { + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + }, + "return_for_back_way": { + "type": "integer", + "format": "int64", + "description": "Сумма, возмещаемая покупателю за пересылку товара." + } + }, + "required": [ + "return_id" + ] + }, + "v1ReturnsRfbsActionSetRequest": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "Комментарий продавца.\n\nОбязателен для `id: -1` и `id: -10`.\n" + }, + "compensation_amount": { + "type": "number", + "format": "double", + "description": "Сумма компенсации.\n\nОбязательна для `id: 1020`.\n" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор действия. \n\nПолучите доступные действия `returns.available_actions` методом [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2).\n" + }, + "rejection_reason_id": { + "type": "integer", + "format": "int32", + "description": "Идентификатор причины отмены.\n\nОбязателен для `id: -1` и `id: -10`.\n\nПолучите возможные причины отмены `returns.rejection_reason` методом [/v2/returns/rfbs/get](#operation/RFBSReturnsAPI_ReturnsRfbsGetV2).\n" + }, + "return_for_back_way": { + "type": "number", + "format": "double", + "description": "Сумма, возмещаемая покупателю за пересылку товара.\n\nОтрицательные значения приравниваются к `0`.\n" + }, + "return_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на возврат." + } + } + }, + "v1GetConditionalCancellationRequest": { + "type": "object", + "title": "object", + "properties": { + "cancellation_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на отмену." + } + }, + "required": [ + "cancellation_id" + ] + }, + "ConditionalCancellationCancellationReason": { + "type": "object", + "title": "object", + "description": "Причина отмены.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор причины отмены." + }, + "name": { + "type": "string", + "description": "Название причины отмены." + } + } + }, + "ConditionalCancellationState": { + "type": "object", + "title": "object", + "description": "Статус заявки на отмену.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор статуса." + }, + "name": { + "type": "string", + "description": "Название статуса." + }, + "state": { + "type": "string", + "enum": [ + "ON_APPROVAL", + "APPROVED", + "REJECTED" + ], + "description": "Статус заявки:\n- `ON_APPROVAL` — ожидает решения.\n- `APPROVED` — подтверждённая.\n- `REJECTED` — отклонённая.\n" + } + } + }, + "v1ConditionalCancellation": { + "type": "object", + "title": "object", + "description": "Результат запроса.", + "properties": { + "cancellation_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на отмену." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "cancellation_reason": { + "$ref": "#/components/schemas/ConditionalCancellationCancellationReason" + }, + "cancelled_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания заявки на отмену." + }, + "cancellation_reason_message": { + "type": "string", + "description": "Комментарий к заявке на отмену, введённый инициатором отмены вручную." + }, + "tpl_integration_type": { + "type": "string", + "description": "Тип интеграции со службой доставки." + }, + "state": { + "$ref": "#/components/schemas/ConditionalCancellationState" + }, + "cancellation_initiator": { + "type": "string", + "enum": [ + "OZON", + "SELLER", + "CLIENT", + "SYSTEM", + "DELIVERY" + ], + "description": "Инициатор отмены:\n- `OZON` — Ozon, \n- `SELLER` — продавец, \n- `CLIENT` — покупатель, \n- `SYSTEM` — система, \n- `DELIVERY` — служба доставки.\n" + }, + "order_date": { + "type": "string", + "format": "date-time", + "description": "Дата создания заказа." + }, + "approve_comment": { + "type": "string", + "description": "Комментарий, оставленный при подтверждении или отклонении заявки на отмену." + }, + "approve_date": { + "type": "string", + "format": "date-time", + "description": "Дата подтверждения или отклонения заявки на отмену." + }, + "auto_approve_date": { + "type": "string", + "format": "date-time", + "description": "Дата, после которой заявка будет автоматически подтверждена." + } + } + }, + "v1GetConditionalCancellationResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v1ConditionalCancellation" + } + } + }, + "v2CancellationInitiatorEnum": { + "type": "string", + "description": "Инициатор отмены:\n- `SELLER` — продавец, \n- `CLIENT` — покупатель,\n- `OZON` — Ozon, \n- `SYSTEM` — система, \n- `DELIVERY` — служба доставки.\n", + "enum": [ + "OZON", + "SELLER", + "CLIENT", + "SYSTEM", + "DELIVERY" + ] + }, + "v2CancellationStateEnumFilters": { + "type": "string", + "default": "ALL", + "description": "Фильтр по статусу заявки на отмену:\n- `ALL` — заявки в любом статусе, \n- `ON_APPROVAL` — заявки на рассмотрении,\n- `APPROVED` — подтверждённые заявки, \n- `REJECTED` — отклонённые заявки.\n", + "enum": [ + "ALL", + "ON_APPROVAL", + "APPROVED", + "REJECTED" + ] + }, + "GetConditionalCancellationListV2RequestFilters": { + "type": "object", + "description": "Фильтры.", + "properties": { + "cancellation_initiator": { + "type": "array", + "description": "Инициатор отмены:\n- `SELLER` — продавец, \n- `CLIENT` — покупатель,\n- `OZON` — Ozon, \n- `SYSTEM` — система, \n- `DELIVERY` — служба доставки.\n", + "items": { + "$ref": "#/components/schemas/v2CancellationInitiatorEnum" + } + }, + "posting_number": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Фильтр по номеру отправления." + }, + "state": { + "description": "Фильтр по статусу заявки на отмену:\n - `ALL` — заявки в любом статусе,\n - `ON_APPROVAL` — заявки на рассмотрении,\n - `APPROVED` — подтверждённые заявки,\n - `REJECTED` — отклонённые заявки.\n", + "$ref": "#/components/schemas/v2CancellationStateEnumFilters" + } + } + }, + "GetConditionalCancellationListV2RequestWith": { + "type": "object", + "description": "Дополнительная информация.", + "properties": { + "counter": { + "description": "Признак, что в ответе нужно вывести счётчик заявок в статусе `ON_APPROVAL`.", + "type": "boolean" + } + } + }, + "v2GetConditionalCancellationListV2Request": { + "required": [ + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "filters": { + "$ref": "#/components/schemas/GetConditionalCancellationListV2RequestFilters" + }, + "last_id": { + "description": "Идентификатор последнего значения на странице. Оставьте это поле пустым при выполнении первого запроса.\n\nЧтобы получить следующие значения, укажите `last_id` из ответа предыдущего запроса.\n", + "type": "integer", + "format": "int64" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Количество заявок в ответе.", + "maximum": 500 + }, + "with": { + "$ref": "#/components/schemas/GetConditionalCancellationListV2RequestWith" + } + } + }, + "GetConditionalCancellationListV2ResponseCancellationReason": { + "type": "object", + "description": "Причина отмены.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор причины отмены." + }, + "name": { + "type": "string", + "description": "Название причины отмены." + } + } + }, + "v2CancellationStateEnum": { + "type": "string", + "description": "Статус заявки:\n- `ON_APPROVAL` — заявка на рассмотрении,\n- `APPROVED` — подтверждённая заявка,\n- `REJECTED` — отклонённая заявка.\n", + "enum": [ + "ON_APPROVAL", + "APPROVED", + "REJECTED" + ] + }, + "GetConditionalCancellationListV2ResponseState": { + "type": "object", + "description": "Статус заявки на отмену.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор статуса." + }, + "name": { + "description": "Название статуса.", + "type": "string" + }, + "state": { + "$ref": "#/components/schemas/v2CancellationStateEnum" + } + } + }, + "GetConditionalCancellationListV2ResponseResult": { + "type": "object", + "properties": { + "approve_comment": { + "type": "string", + "description": "Комментарий, оставленный при подтверждении или отклонении заявки на отмену." + }, + "approve_date": { + "description": "Дата подтверждения или отклонения заявки на отмену.", + "type": "string", + "format": "date-time" + }, + "auto_approve_date": { + "description": "Дата, после которой заявка будет автоматически подтверждена.", + "type": "string", + "format": "date-time" + }, + "cancellation_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на отмену." + }, + "cancellation_initiator": { + "$ref": "#/components/schemas/v2CancellationInitiatorEnum" + }, + "cancellation_reason": { + "$ref": "#/components/schemas/GetConditionalCancellationListV2ResponseCancellationReason" + }, + "cancellation_reason_message": { + "description": "Комментарий к заявке на отмену, введённый инициатором отмены вручную.", + "type": "string" + }, + "cancelled_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания заявки на отмену." + }, + "order_date": { + "description": "Дата создания заказа.", + "type": "string", + "format": "date-time" + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "source_id": { + "type": "integer", + "format": "int64", + "description": "Предыдущий идентификатор заявки на отмену.\n\nИспользуется для поддержания обратной совместимости.\n" + }, + "state": { + "$ref": "#/components/schemas/GetConditionalCancellationListV2ResponseState" + }, + "tpl_integration_type": { + "description": "Тип интеграции со службой доставки.", + "type": "string" + } + } + }, + "v2GetConditionalCancellationListV2Response": { + "type": "object", + "properties": { + "counter": { + "description": "Cчётчик заявок в статусе `ON_APPROVAL`.", + "type": "integer", + "format": "int64" + }, + "last_id": { + "description": "Идентификатор последнего значения на странице.\n\nЧтобы получить следующие значения, передайте полученное значение в следующем запросе в параметре `last_id`.\n", + "type": "integer", + "format": "int64" + }, + "result": { + "type": "array", + "description": "Информация о заявках на отмену.", + "items": { + "$ref": "#/components/schemas/GetConditionalCancellationListV2ResponseResult" + } + } + } + }, + "GetConditionalCancellationListRequestFilters": { + "type": "object", + "title": "object", + "description": "Фильтры.", + "properties": { + "cancellation_initiator": { + "description": "Инициатор отмены:\n- `SELLER` — продавец, \n- `CLIENT` — клиент или покупатель,\n- `OZON` — Ozon, \n- `SYSTEM` — система, \n- `DELIVERY` — служба доставки.\n\nНеобязательный параметр. Можно передавать несколько значений.\n", + "items": { + "type": "string", + "enum": [ + "OZON", + "SELLER", + "CLIENT", + "SYSTEM", + "DELIVER" + ] + } + }, + "posting_number": { + "description": "Фильтр по номеру отправления.\n\nНеобязательный параметр. Можно передавать несколько значений.\n", + "type": "array of strings" + }, + "state": { + "description": "Фильтр по статусу заявки на отмену:\n- `ALL` — заявки в любом статусе, \n- `ON_APPROVAL` — заявки на рассмотрении,\n- `APPROVED` — подтверждённые заявки, \n- `REJECTED` — отклонённые заявки.\n", + "type": "string", + "enum": [ + "ALL", + "ON_APPROVAL", + "APPROVED", + "REJECTED" + ] + } + } + }, + "GetConditionalCancellationListRequestWith": { + "type": "object", + "title": "object", + "description": "Дополнительная информация.", + "properties": { + "counters": { + "type": "boolean", + "description": "Признак, что в ответе нужно вывести счётчик заявок в разных статусах." + } + } + }, + "v1GetConditionalCancellationListRequest": { + "type": "object", + "title": "object", + "properties": { + "filters": { + "$ref": "#/components/schemas/GetConditionalCancellationListRequestFilters" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Количество заявок в ответе." + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset=10`, ответ начнётся с 11-го найденного элемента." + }, + "with": { + "$ref": "#/components/schemas/GetConditionalCancellationListRequestWith" + } + }, + "required": [ + "limit" + ] + }, + "GetConditionalCancellationListResponseCounters": { + "type": "object", + "title": "object", + "description": "Cчётчик заявок в разных статусах.", + "properties": { + "on_approval": { + "description": "Количество заявок на рассмотрении.", + "type": "integer", + "format": "int64" + }, + "approved": { + "description": "Количество подтверждённых заявок.", + "type": "integer", + "format": "int64" + }, + "rejected": { + "description": "Количество отклонённых заявок.", + "type": "integer", + "format": "int64" + } + } + }, + "v1GetConditionalCancellationListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "description": "Список заявок на отмену.", + "items": { + "$ref": "#/components/schemas/v1ConditionalCancellation" + } + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Общее количество заявок по заданным фильтрам." + }, + "counters": { + "$ref": "#/components/schemas/GetConditionalCancellationListResponseCounters" + } + } + }, + "v2ConditionalCancellationMoveV2Request": { + "required": [ + "cancellation_id" + ], + "type": "object", + "properties": { + "cancellation_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на отмену." + }, + "comment": { + "type": "string", + "description": "Комментарий." + } + } + }, + "v1ConditionalCancellationMoveRequest": { + "type": "object", + "title": "object", + "properties": { + "cancellation_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор заявки на отмену." + }, + "comment": { + "type": "string", + "description": "Комментарий." + } + }, + "required": [ + "cancellation_id" + ] + }, + "v1TimeRange_return_date": { + "type": "object", + "title": "object", + "description": "Фильтр по дате создания возврата.", + "properties": { + "time_from": { + "type": "string", + "description": "Начало периода.", + "format": "date-time" + }, + "time_to": { + "type": "string", + "description": "Окончание периода.", + "format": "date-time" + } + } + }, + "v1TimeRange_storage_tariffication": { + "type": "object", + "title": "object", + "description": "Фильтр по дате начала тарификации.", + "properties": { + "time_from": { + "type": "string", + "description": "Начало периода.", + "format": "date-time" + }, + "time_to": { + "type": "string", + "description": "Окончание периода.", + "format": "date-time" + } + } + }, + "v1TimeRange_visual_status": { + "type": "object", + "title": "object", + "description": "Фильтр по дате изменения статуса возврата.", + "properties": { + "time_from": { + "type": "string", + "description": "Начало периода.", + "format": "date-time" + }, + "time_to": { + "type": "string", + "description": "Окончание периода.", + "format": "date-time" + } + } + }, + "GetReturnsListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтры. Используйте только один фильтр в запросе: `logistic_return_date`, `storage_tariffication_start_date` или `visual_status_change_moment`, иначе вернётся ошибка.\n", + "properties": { + "logistic_return_date": { + "$ref": "#/components/schemas/v1TimeRange_return_date" + }, + "storage_tariffication_start_date": { + "$ref": "#/components/schemas/v1TimeRange_storage_tariffication" + }, + "visual_status_change_moment": { + "$ref": "#/components/schemas/v1TimeRange_visual_status" + }, + "order_id": { + "type": "integer", + "description": "Фильтр по идентификатору заказа.", + "format": "int64" + }, + "posting_numbers": { + "type": "array", + "description": "Фильтр по номеру отправления. Передавайте не больше 50 постингов.", + "items": { + "type": "string" + } + }, + "product_name": { + "type": "string", + "description": "Фильтр по названию товара." + }, + "offer_id": { + "type": "string", + "description": "Фильтр по артикулу товара." + }, + "visual_status_name": { + "type": "string", + "description": "Фильтр по статусу возврата:\n- `DisputeOpened` — открыт спор с покупателем;\n- `OnSellerApproval` — на согласовании у продавца;\n- `ArrivedAtReturnPlace` — в пункте выдачи;\n- `OnSellerClarification` — на уточнении у продавца;\n- `OnSellerClarificationAfterPartialCompensation` — на уточнении у продавца после частичной компенсации;\n- `OfferedPartialCompensation` — предложена частичная компенсация;\n- `ReturnMoneyApproved` — одобрен возврат денег;\n- `PartialCompensationReturned` — вернули часть денег;\n- `CancelledDisputeNotOpen` — возврат отклонён, спор не открыт;\n- `Rejected` — заявка отклонена;\n- `CrmRejected` — заявка отклонена Ozon;\n- `Cancelled` — заявка отменена;\n- `Approved` — заявка одобрена продавцом;\n- `ApprovedByOzon` — заявка одобрена Ozon;\n- `ReceivedBySeller` — продавец получил возврат;\n- `MovingToSeller` — возврат на пути к продавцу;\n- `ReturnCompensated` — продавец получил компенсацию;\n- `ReturningToSellerByCourier` — курьер везёт возврат продавцу;\n- `Utilizing` — на утилизации;\n- `Utilized` — утилизирован;\n- `MoneyReturned` — покупателю вернули всю сумму;\n- `PartialCompensationInProcess` — одобрен частичный возврат денег;\n- `DisputeYouOpened` — продавец открыл спор;\n- `CompensationRejected` — отказано в компенсации;\n- `DisputeOpening` — обращение в поддержку отправлено;\n- `CompensationOffered` — ожидает вашего решения по компенсации;\n- `WaitingCompensation` — ожидает компенсации;\n- `SendingError` — ошибка при отправке обращения в поддержку;\n- `CompensationRejectedBySla` — истёк срок решения;\n- `CompensationRejectedBySeller` — продавец отказался от компенсации;\n- `MovingToOzon` — едет на склад Ozon;\n- `ReturnedToOzon` — на складе Ozon;\n- `MoneyReturnedBySystem` — быстрый возврат;\n- `WaitingShipment` — ожидает отправки.\n" + }, + "warehouse_id": { + "type": "integer", + "description": "Фильтр по идентификатору склада. Можно получить с помощью метода [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList).", + "format": "int64" + }, + "barcode": { + "type": "string", + "description": "Фильтр по штрихкоду возвратной этикетки." + }, + "return_schema": { + "type": "string", + "description": "Фильтр по схеме доставки: `FBS` или `FBO`.\n" + } + } + }, + "v1GetReturnsListRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/GetReturnsListRequestFilter" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Количество подгружаемых возвратов. Максимальное значение — 500." + }, + "last_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор последнего подгруженного возврата." + } + }, + "required": [ + "limit" + ] + }, + "GetReturnsListResponseExemplar": { + "type": "object", + "title": "object", + "properties": { + "id": { + "type": "integer", + "description": "Идентификатор экземпляра.", + "format": "int64" + } + } + }, + "GetReturnsListResponsePlace_now": { + "type": "object", + "title": "object", + "description": "Склад, где находится возврат.", + "properties": { + "id": { + "type": "integer", + "description": "Идентификатор склада.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Название." + }, + "address": { + "type": "string", + "description": "Адрес." + } + } + }, + "GetReturnsListResponsePlace_target": { + "type": "object", + "title": "object", + "description": "Склад, куда едет возврат.", + "properties": { + "id": { + "type": "integer", + "description": "Идентификатор склада.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Название." + }, + "address": { + "type": "string", + "description": "Адрес." + } + } + }, + "seller_returnsv1Money_storage": { + "type": "object", + "title": "object", + "description": "Стоимость хранения.", + "properties": { + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "price": { + "type": "number", + "format": "double", + "description": "Стоимость хранения." + } + } + }, + "seller_returnsv1Money_utilization": { + "type": "object", + "title": "object", + "description": "Стоимость утилизации.", + "properties": { + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "price": { + "type": "number", + "format": "double", + "description": "Стоимость утилизации." + } + } + }, + "GetReturnsListResponseStorage": { + "type": "object", + "title": "object", + "description": "Информация о хранении.", + "properties": { + "sum": { + "$ref": "#/components/schemas/seller_returnsv1Money_storage" + }, + "tariffication_first_date": { + "type": "string", + "description": "Первый день тарификации за хранение.", + "format": "date-time" + }, + "tariffication_start_date": { + "type": "string", + "description": "Дата старта тарификации за хранение.", + "format": "date-time" + }, + "arrived_moment": { + "type": "string", + "description": "Дата, когда возврат был готов к выдаче.", + "format": "date-time" + }, + "days": { + "type": "integer", + "description": "Сколько дней возврат ожидает выдачи продавцу.", + "format": "int64" + }, + "utilization_sum": { + "format": "date-time", + "$ref": "#/components/schemas/seller_returnsv1Money_utilization" + }, + "utilization_forecast_date": { + "type": "string", + "description": "Планируемая дата утилизации." + } + } + }, + "seller_returnsv1Money_product": { + "type": "object", + "title": "object", + "description": "Стоимость товара.", + "properties": { + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "price": { + "type": "number", + "format": "double", + "description": "Стоимость товара." + } + } + }, + "seller_returnsv1Money_without_commission": { + "type": "object", + "title": "object", + "description": "Стоимость товара без комиссии.", + "properties": { + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "price": { + "type": "number", + "format": "double", + "description": "Стоимость товара без комиссии." + } + } + }, + "seller_returnsv1Money_commission": { + "type": "object", + "title": "object", + "description": "Информация о комиссии.", + "properties": { + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "price": { + "type": "number", + "format": "double", + "description": "Размер комиссии." + } + } + }, + "GetReturnsListResponseProduct": { + "type": "object", + "title": "object", + "description": "Информация о товаре.", + "properties": { + "sku": { + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU.", + "format": "int64" + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "price": { + "$ref": "#/components/schemas/seller_returnsv1Money_product" + }, + "price_without_commission": { + "$ref": "#/components/schemas/seller_returnsv1Money_without_commission" + }, + "commission_percent": { + "type": "number", + "description": "Процент комиссии.", + "format": "double" + }, + "commission": { + "$ref": "#/components/schemas/seller_returnsv1Money_commission" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + } + } + }, + "GetReturnsListResponseLogistic": { + "type": "object", + "title": "object", + "description": "Информация о возврате.", + "properties": { + "technical_return_moment": { + "type": "string", + "description": "Дата, когда заказ поставили на технический возврат.", + "format": "date-time" + }, + "final_moment": { + "type": "string", + "description": "Дата, когда возврат прибыл на фулфилмент или выдан продавцу.", + "format": "date-time" + }, + "cancelled_with_compensation_moment": { + "type": "string", + "description": "Дата, когда продавцу компенсировали возврат.", + "format": "date-time" + }, + "return_date": { + "type": "string", + "description": "Дата, когда покупатель вернул товар.", + "format": "date-time" + }, + "barcode": { + "type": "string", + "description": "Штрихкод этикетки возврата." + } + } + }, + "GetReturnsListResponseVisualStatus": { + "type": "object", + "title": "object", + "description": "Статус возврата.", + "properties": { + "id": { + "type": "integer", + "description": "Идентификатор статуса возврата.", + "format": "int32" + }, + "display_name": { + "type": "string", + "description": "Название статуса возврата." + }, + "sys_name": { + "type": "string", + "description": "Системное название статуса возврата." + } + } + }, + "GetReturnsListResponseVisual": { + "type": "object", + "title": "object", + "description": "Информация о статусе возврата.", + "properties": { + "status": { + "$ref": "#/components/schemas/GetReturnsListResponseVisualStatus" + }, + "change_moment": { + "type": "string", + "description": "Дата изменения статуса возврата.", + "format": "date-time" + } + } + }, + "GetReturnsListResponseAdditionalInfo": { + "type": "object", + "title": "object", + "description": "Дополнительная информация.", + "properties": { + "is_opened": { + "type": "boolean", + "description": "`true`, если возврат вскрыт.\n" + }, + "is_super_econom": { + "type": "boolean", + "description": "`true`, если возврат относится к товарам «Суперэконом».\n" + } + } + }, + "GetReturnsListResponseReturnsItem": { + "type": "object", + "title": "object", + "properties": { + "exemplars": { + "type": "array", + "description": "Информация об экземплярах.", + "items": { + "$ref": "#/components/schemas/GetReturnsListResponseExemplar" + } + }, + "id": { + "type": "integer", + "description": "Идентификатор возврата.", + "format": "int64" + }, + "company_id": { + "type": "integer", + "description": "Идентификатор продавца.", + "format": "int64" + }, + "return_reason_name": { + "type": "string", + "description": "Причина возврата или отмены." + }, + "type": { + "type": "string", + "description": "Тип возврата: \n`Cancellation` - отмена (до вручения);\n`FullReturn` - полный отказ при вручении;\n`PartialReturn` - частичный отказ при вручении;\n`ClientReturn` - клиентский возврат (после вручения);\n`Unknown` - технический возврат.\n" + }, + "schema": { + "type": "string", + "description": "Схема возврата:\n`FBS`;\n`FBO`.\n" + }, + "order_id": { + "type": "integer", + "description": "Идентификатор заказа.", + "format": "int64" + }, + "order_number": { + "type": "string", + "description": "Номер заказа." + }, + "place": { + "$ref": "#/components/schemas/GetReturnsListResponsePlace_now" + }, + "target_place": { + "$ref": "#/components/schemas/GetReturnsListResponsePlace_target" + }, + "storage": { + "$ref": "#/components/schemas/GetReturnsListResponseStorage" + }, + "product": { + "$ref": "#/components/schemas/GetReturnsListResponseProduct" + }, + "logistic": { + "$ref": "#/components/schemas/GetReturnsListResponseLogistic" + }, + "visual": { + "$ref": "#/components/schemas/GetReturnsListResponseVisual" + }, + "additional_info": { + "$ref": "#/components/schemas/GetReturnsListResponseAdditionalInfo" + }, + "source_id": { + "type": "integer", + "description": "Предыдущий идентификатор возврата.", + "format": "int64" + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "clearing_id": { + "type": "integer", + "description": "Штрихкод изначального отправления.", + "format": "int64" + }, + "return_clearing_id": { + "type": "integer", + "description": "Возвратный штрихкод изначального отправления.", + "format": "int64" + } + } + }, + "v1GetReturnsListResponse": { + "type": "object", + "title": "object", + "properties": { + "returns": { + "type": "array", + "description": "Информация о возвратах.", + "items": { + "$ref": "#/components/schemas/GetReturnsListResponseReturnsItem" + } + }, + "has_next": { + "type": "boolean", + "description": "`true`, если у продавца есть другие возвраты.\n" + } + } + }, + "v1ReturnsCompanyFbsInfoRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтры.", + "properties": { + "place_id": { + "type": "integer", + "format": "int64", + "description": "Фильтр по идентификатору drop-off пункта." + } + } + }, + "ReturnsCompanyFbsInfoRequestPagination": { + "required": [ + "limit" + ], + "type": "object", + "title": "object", + "description": "Разделение ответа метода.", + "properties": { + "last_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор последнего drop-off пункта на странице. Для первого запроса оставьте это поле пустым.\n\nЧтобы получить следующие значения, укажите `id` последнего drop-off пункта из ответа предыдущего запроса.\n" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Количество drop-off пунктов на странице. Максимум — 500." + } + } + }, + "v1ReturnsCompanyFbsInfoRequest": { + "required": [ + "pagination" + ], + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/v1ReturnsCompanyFbsInfoRequestFilter" + }, + "pagination": { + "$ref": "#/components/schemas/ReturnsCompanyFbsInfoRequestPagination" + } + } + }, + "ReturnsCompanyFbsInfoResponsePass_info": { + "type": "object", + "title": "object", + "description": "Информация о пропуске.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Количество пропусков на drop-off пункт." + }, + "is_required": { + "type": "boolean", + "description": "Признак, нужен ли пропуск на drop-off пункт." + } + } + }, + "ReturnsCompanyFbsInfoResponseDropOffPoints": { + "type": "object", + "title": "object", + "properties": { + "address": { + "type": "string", + "description": "Адрес drop-off пункта." + }, + "box_count": { + "type": "integer", + "format": "int32", + "description": "Количество коробок в drop-off пункте." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор drop-off пункта." + }, + "name": { + "type": "string", + "description": "Название drop-off пункта." + }, + "pass_info": { + "$ref": "#/components/schemas/ReturnsCompanyFbsInfoResponsePass_info" + }, + "place_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада, на который приедет отгрузка." + }, + "returns_count": { + "type": "integer", + "format": "int32", + "description": "Количество возвратов в drop-off пункте." + }, + "utc_offset": { + "type": "string", + "description": "Смещение часового пояса времени отгрузки от UTC-0." + }, + "warehouses_ids": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Идентификатор складов продавца." + } + } + }, + "v1ReturnsCompanyFbsInfoResponse": { + "type": "object", + "title": "object", + "properties": { + "drop_off_points": { + "description": "Информация о drop-off пунктах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ReturnsCompanyFbsInfoResponseDropOffPoints" + } + }, + "has_next": { + "type": "boolean", + "description": "Признак, есть ли ещё пункты, где продавца ожидают возвраты." + } + } + }, + "v1GiveoutIsEnabledResponse": { + "type": "object", + "properties": { + "enabled": { + "description": "`true`, если вы можете получить возвратную отгрузку по штрихкоду.\n", + "type": "boolean" + } + } + }, + "v1GiveoutListRequest": { + "required": [ + "limit" + ], + "type": "object", + "properties": { + "last_id": { + "description": "Идентификатор последнего значения на странице.", + "type": "integer", + "format": "int64" + }, + "limit": { + "description": "Количество элементов в ответе.", + "type": "integer", + "format": "int64" + } + } + }, + "v1GiveoutStatus": { + "type": "string", + "description": "Статусы возвратной отгрузки:\n - `GIVEOUT_STATUS_UNSPECIFIED` — не определён, напишите в поддержку.\n - `GIVEOUT_STATUS_CREATED` — создана.\n - `GIVEOUT_STATUS_APPROVED` — одобрена.\n - `GIVEOUT_STATUS_COMPLETED` — завершена.\n - `GIVEOUT_STATUS_CANCELLED` — отменена.\n" + }, + "GiveoutListResponseGiveoutDetails": { + "type": "object", + "properties": { + "approved_articles_count": { + "description": "Количество товаров в отгрузке.", + "type": "integer", + "format": "int32" + }, + "created_at": { + "description": "Дата и время.", + "type": "string", + "format": "date-time" + }, + "giveout_id": { + "description": "Идентификатор отгрузки.", + "type": "integer", + "format": "int64" + }, + "giveout_status": { + "$ref": "#/components/schemas/v1GiveoutStatus" + }, + "total_articles_count": { + "description": "Общее количество товаров, которые нужно забрать со склада.", + "type": "integer", + "format": "int32" + }, + "warehouse_address": { + "description": "Адрес склада.", + "type": "string" + }, + "warehouse_id": { + "description": "Идентификатор склада.", + "type": "integer", + "format": "int64" + }, + "warehouse_name": { + "description": "Название склада.", + "type": "string" + } + } + }, + "v1GiveoutListResponse": { + "type": "object", + "properties": { + "giveouts": { + "description": "Идентификатор отгрузки.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GiveoutListResponseGiveoutDetails" + } + } + } + }, + "v1GiveoutInfoRequest": { + "required": [ + "giveout_id" + ], + "type": "object", + "properties": { + "giveout_id": { + "description": "Идентификатор отгрузки.", + "type": "integer", + "format": "int64" + } + } + }, + "v1GiveoutDeliverySchema": { + "type": "string", + "description": "Cхема доставки:\n - `GIVEOUT_DELIVERY_SCHEMA_UNSPECIFIED` — не определёна, напишите в поддержку.\n - `GIVEOUT_DELIVERY_SCHEMA_FBO` — FBO.\n - `GIVEOUT_DELIVERY_SCHEMA_FBS` — FBS.\n" + }, + "GiveoutInfoResponseArticleDetails": { + "type": "object", + "properties": { + "approved": { + "description": "`true`, если отгрузка подтверждена.\n", + "type": "boolean" + }, + "delivery_schema": { + "$ref": "#/components/schemas/v1GiveoutDeliverySchema" + }, + "name": { + "description": "Название товара.", + "type": "string" + }, + "seller_id": { + "description": "Идентификатор продавца.", + "type": "integer", + "format": "int64" + } + } + }, + "v1GiveoutInfoResponse": { + "type": "object", + "properties": { + "articles": { + "description": "Артикулы товаров.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GiveoutInfoResponseArticleDetails" + } + }, + "giveout_id": { + "description": "Идентификатор отгрузки.", + "type": "integer", + "format": "int64" + }, + "giveout_status": { + "$ref": "#/components/schemas/v1GiveoutStatus" + }, + "warehouse_address": { + "description": "Адрес склада.", + "type": "string" + }, + "warehouse_name": { + "description": "Название склада.", + "type": "string" + } + } + }, + "v1GiveoutGetBarcodeResponse": { + "type": "object", + "properties": { + "barcode": { + "description": "Значение штрихкода в текстовом виде.", + "type": "string" + } + } + }, + "v1GiveoutGetPDFResponse": { + "type": "object", + "title": "object", + "properties": { + "file_content": { + "type": "string", + "description": "PDF-файл со штрихкодом в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + } + }, + "v1GiveoutGetPNGResponse": { + "type": "object", + "title": "object", + "properties": { + "file_content": { + "type": "string", + "description": "PNG-файл со штрихкодом в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + } + }, + "v1GiveoutBarcodeResetResponse": { + "type": "object", + "title": "object", + "properties": { + "file_content": { + "type": "string", + "description": "Изображение со штрихкодом в бинарном виде." + }, + "file_name": { + "type": "string", + "description": "Название файла." + }, + "content_type": { + "type": "string", + "description": "Тип файла." + } + } + }, + "chatChatSendMessageRequest": { + "required": [ + "chat_id", + "text" + ], + "properties": { + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "text": { + "type": "string", + "description": "Текст сообщения в формате plain text от 1 до 1000 символов." + } + }, + "title": "ChatSendMessage", + "type": "object" + }, + "chatChatSendMessageResponse": { + "properties": { + "result": { + "type": "string", + "description": "Результат обработки запроса." + } + }, + "type": "object", + "title": "object" + }, + "chatChatSendFileRequest": { + "required": [ + "chat_id" + ], + "properties": { + "base64_content": { + "type": "string", + "description": "Файл в виде строки base64." + }, + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "name": { + "type": "string", + "description": "Название файла с расширением." + } + }, + "title": "ChatSendFile", + "type": "object" + }, + "chatChatSendFileResponse": { + "properties": { + "result": { + "type": "string", + "description": "Результат обработки запроса." + } + }, + "type": "object", + "title": "object" + }, + "chatChatStartRequest": { + "required": [ + "posting_number" + ], + "properties": { + "posting_number": { + "type": "string", + "description": "Идентификатор отправления." + } + }, + "title": "ChatStart", + "type": "object" + }, + "ChatStartResponseResult": { + "properties": { + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + } + }, + "type": "object", + "title": "object", + "description": "Результат работы метода." + }, + "chatChatStartResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/ChatStartResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "ChatListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтр по чатам.", + "properties": { + "chat_status": { + "type": "string", + "description": "Фильтр по статусу чата:\n- `All` — все чаты.\n- `Opened` — открытые чаты.\n- `Closed` — закрытые чаты.\n\nЗначение по умолчанию: `All`.\n" + }, + "unread_only": { + "type": "boolean", + "description": "Фильтр по чатам с непрочитанными сообщениями." + } + } + }, + "ChatList": { + "required": [ + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/ChatListRequestFilter" + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество значений в ответе. Значение по умолчанию — 30. Максимальное значение — 1000." + }, + "offset": { + "type": "integer", + "format": "int64", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset=10`, ответ начнётся с 11-го найденного элемента." + } + } + }, + "ChatInfo": { + "type": "object", + "title": "object", + "description": "Данные чата.", + "properties": { + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "chat_status": { + "type": "string", + "description": "Статус чата:\n- `All` — все чаты.\n- `Opened` — открытые чаты.\n- `Closed` — закрытые чаты.\n" + }, + "chat_type": { + "type": "string", + "description": "Тип чата:\n- `Seller_Support` — чат с поддержкой.\n- `Buyer_Seller` — чат с покупателем.\n" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания чата." + }, + "first_unread_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор первого непрочитанного сообщения в чате." + }, + "last_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор последнего сообщения в чате." + }, + "unread_count": { + "type": "integer", + "format": "int64", + "description": "Количество непрочитанных сообщений в чате." + } + } + }, + "v2ChatListResponse": { + "type": "object", + "title": "object", + "properties": { + "chats": { + "description": "Данные чатов.", + "items": { + "$ref": "#/components/schemas/ChatInfo" + } + }, + "total_chats_count": { + "type": "integer", + "format": "int64", + "description": "Общее количество чатов." + }, + "total_unread_count": { + "type": "integer", + "format": "int64", + "description": "Общее количество непрочитанных сообщений." + } + } + }, + "v3ChatListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтр по чатам.", + "properties": { + "chat_status": { + "type": "string", + "description": "Фильтр по статусу чата:\n- `All` — все чаты.\n- `Opened` — открытые чаты.\n- `Closed` — закрытые чаты.\n\nЗначение по умолчанию: `All`.\n" + }, + "unread_only": { + "type": "boolean", + "description": "Фильтр по чатам с непрочитанными сообщениями." + } + } + }, + "v3ChatList": { + "required": [ + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/v3ChatListRequestFilter" + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество значений в ответе. Значение по умолчанию — 30. Максимальное значение — 1000." + }, + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + } + } + }, + "v3ChatDetailsInfo": { + "type": "object", + "description": "Информация о чате.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания чата." + }, + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "chat_status": { + "type": "string", + "description": "Статус чата:\n- `All` — все чаты.\n- `Opened` — открытые чаты.\n- `Closed` — закрытые чаты.\n- `UNSPECIFIED` — не определено.\n" + }, + "chat_type": { + "type": "string", + "description": "Тип чата:\n- `Seller_Support` — чат с поддержкой.\n- `Buyer_Seller` — чат с покупателем.\n- `UNSPECIFIED` — не определено.\n" + } + } + }, + "v3ChatInfo": { + "type": "object", + "properties": { + "chat": { + "$ref": "#/components/schemas/v3ChatDetailsInfo" + }, + "first_unread_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор первого непрочитанного сообщения в чате." + }, + "last_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор последнего сообщения в чате." + }, + "unread_count": { + "type": "integer", + "format": "int64", + "description": "Количество непрочитанных сообщений в чате." + } + } + }, + "v3ChatListResponse": { + "type": "object", + "title": "object", + "properties": { + "chats": { + "description": "Данные чатов.", + "items": { + "$ref": "#/components/schemas/v3ChatInfo" + } + }, + "total_unread_count": { + "type": "integer", + "format": "int64", + "description": "Общее количество непрочитанных сообщений." + }, + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "has_next": { + "type": "boolean", + "description": "Признак, что в ответе вернулись не все чаты:\n- `true` — сделайте повторный запрос с новым параметром `cursor` для получения остальных чатов;\n- `false` — ответ содержит все чаты для фильтра, который был задан в запросе.\n" + } + } + }, + "ChatHistory": { + "type": "object", + "title": "object", + "properties": { + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "direction": { + "type": "string", + "description": "Направление сортировки сообщений:\n- `Forward` — от старых к новым.\n- `Backward` — от новых к старым.\n\nЗначение по умолчанию — `Backward`. Количество сообщений можно установить в параметре `limit`.\n" + }, + "from_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор сообщения, с которого начать вывод истории чата. По умолчанию — последнее видимое сообщение." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество сообщений в ответе. По умолчанию — 50. Максимальное значение — 1000." + } + }, + "required": [ + "chat_id", + "limit" + ] + }, + "v2User": { + "type": "object", + "title": "object", + "description": "Информация об участнике чата.", + "properties": { + "id": { + "type": "string", + "description": "Идентификатор участника чата." + }, + "type": { + "type": "string", + "description": "Тип участника чата:\n- `customer` — покупатель,\n- `seller` — продавец,\n- `crm` — системные сообщения,\n- `courier` — курьер,\n- `support` — поддержка.\n" + } + } + }, + "v2ChatMessage": { + "type": "object", + "title": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания сообщения." + }, + "data": { + "description": "Массив с содержимым сообщения в формате Markdown.", + "items": { + "type": "string" + } + }, + "is_read": { + "type": "boolean", + "description": "Признак, что сообщение прочитано." + }, + "messageId": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор сообщения." + }, + "user": { + "$ref": "#/components/schemas/v2User" + } + } + }, + "v2ChatHistoryResponse": { + "type": "object", + "title": "object", + "properties": { + "has_next": { + "type": "boolean", + "description": "Признак, что в ответе вернули не все сообщения." + }, + "messages": { + "description": "Массив сообщений, отсортированный в соответствии с параметром `direction` из тела запроса.", + "items": { + "$ref": "#/components/schemas/v2ChatMessage" + } + } + } + }, + "ChatHistoryRequestFilter": { + "type": "object", + "description": "Фильтр по сообщениям.", + "properties": { + "message_ids": { + "description": "Идентификаторы сообщений.", + "type": "array", + "items": { + "type": "string", + "format": "uint64" + } + } + } + }, + "v3ChatHistoryRequest": { + "type": "object", + "properties": { + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "direction": { + "type": "string", + "description": "Направление сортировки сообщений:\n- `Forward` — от старых к новым.\n- `Backward` — от новых к старым.\n\nЗначение по умолчанию — `Backward`. Количество сообщений можно установить в параметре `limit`.\n" + }, + "filter": { + "$ref": "#/components/schemas/ChatHistoryRequestFilter" + }, + "from_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор сообщения, с которого начать вывод истории чата. По умолчанию — последнее видимое сообщение." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество сообщений в ответе. По умолчанию — 50. Максимальное значение — 1000." + } + }, + "required": [ + "chat_id" + ] + }, + "ChatMessageContext": { + "type": "object", + "description": "Информация о чате.", + "properties": { + "order_number": { + "description": "Номер заказа.", + "type": "string" + }, + "sku": { + "type": "string", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "ChatMessageModerateImageStatus": { + "type": "string", + "enum": [ + "SUCCESS", + "MODERATION", + "FAILED" + ], + "description": "Статус модерации изображения: \n - `SUCCESS` — прошло модерацию;\n - `MODERATION` — на модерации;\n - `FAILED` — не прошло модерацию.\n" + }, + "v3User": { + "type": "object", + "description": "Информация об участнике чата.", + "properties": { + "id": { + "description": "Идентификатор участника чата.", + "type": "string" + }, + "type": { + "type": "string", + "description": "Тип участника чата:\n- `customer` — покупатель,\n- `seller` — продавец,\n- `crm` — системные сообщения,\n- `courier` — курьер,\n- `support` — поддержка.\n" + } + } + }, + "v3ChatMessage": { + "type": "object", + "properties": { + "context": { + "$ref": "#/components/schemas/ChatMessageContext" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Дата создания сообщения." + }, + "data": { + "description": "Массив с содержимым сообщения в формате Markdown.", + "type": "array", + "items": { + "type": "string" + } + }, + "is_image": { + "description": "Признак, что сообщение содержит изображение.", + "type": "boolean" + }, + "is_read": { + "type": "boolean", + "description": "Признак, что сообщение прочитано." + }, + "message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор сообщения." + }, + "moderate_image_status": { + "description": "Статус модерации изображения.", + "$ref": "#/components/schemas/ChatMessageModerateImageStatus" + }, + "user": { + "$ref": "#/components/schemas/v3User" + } + } + }, + "v3ChatHistoryResponse": { + "type": "object", + "properties": { + "has_next": { + "type": "boolean", + "description": "Признак, что в ответе вернули не все сообщения." + }, + "messages": { + "description": "Массив сообщений, отсортированный в соответствии с параметром `direction` из тела запроса.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v3ChatMessage" + } + } + } + }, + "ChatRead": { + "type": "object", + "title": "object", + "properties": { + "chat_id": { + "type": "string", + "description": "Идентификатор чата." + }, + "from_message_id": { + "type": "integer", + "format": "uint64", + "description": "Идентификатор сообщения." + } + }, + "required": [ + "chat_id" + ] + }, + "v2ChatReadResponse": { + "type": "object", + "title": "object", + "properties": { + "unread_count": { + "type": "integer", + "format": "int64", + "description": "Количество непрочитанных сообщений в чате." + } + } + }, + "v2HsCode": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "HS-код товара." + }, + "sku": { + "type": "string", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "v2InvoiceCreateOrUpdateV2Request": { + "required": [ + "date", + "posting_number", + "url" + ], + "type": "object", + "title": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time", + "description": "Дата счёта-фактуры." + }, + "hs_codes": { + "type": "array", + "description": "HS-коды товаров.", + "items": { + "$ref": "#/components/schemas/v2HsCode" + } + }, + "number": { + "type": "string", + "description": "Номер счёта-фактуры. Номер может содержать буквы и цифры, максимальная длина — 50 символов." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "price": { + "type": "number", + "format": "double", + "description": "Стоимость, указанная в счёте-фактуре. Разделитель дробной части — точка, до двух знаков после точки." + }, + "price_currency": { + "type": "string", + "description": "Валюта счёта-фактуры:\n- `USD` — доллар, \n- `EUR` — евро, \n- `TRY` — турецкая лира, \n- `CNY` — юань, \n- `RUB` — рубль, \n- `GBP` — фунт стерлингов.\n\nЗначение по умолчанию — `USD`.\n" + }, + "url": { + "type": "string", + "description": "Ссылка на счёт-фактуру. Чтобы создать ссылку, используйте метод [v1/invoice/file/upload](#operation/invoice_upload)." + } + } + }, + "v2InvoiceCreateOrUpdateV2Response": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "boolean", + "description": "Результат работы метода." + } + } + }, + "v1InvoiceFileUploadRequest": { + "required": [ + "base64_content", + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "base64_content": { + "type": "string", + "description": "Счёт-фактура в кодировке Base64." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "v1InvoiceFileUploadResponse": { + "type": "object", + "title": "object", + "properties": { + "url": { + "type": "string", + "description": "Ссылка на счёт-фактуру." + } + } + }, + "v1InvoiceGetRequest": { + "required": [ + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "InvoiceGetV2ResponseResult": { + "type": "object", + "title": "object", + "description": "Информация о счёте-фактуре.", + "properties": { + "date": { + "type": "string", + "format": "date-time", + "description": "Дата загрузки счёта-фактуры." + }, + "file_url": { + "type": "string", + "description": "Ссылка на счёт-фактуру." + }, + "hs_codes": { + "type": "array", + "description": "HS-коды товаров.", + "items": { + "$ref": "#/components/schemas/v2HsCode" + } + }, + "number": { + "type": "string", + "description": "Номер счёта-фактуры." + }, + "price": { + "type": "number", + "format": "double", + "description": "Стоимость, указанная в счёте-фактуре.\nРазделитель дробной части — точка, до двух знаков после точки.\nПример: `199.99`.\n" + }, + "price_currency": { + "type": "string", + "description": "Валюта счёта-фактуры:\n- `USD` — доллар, \n- `EUR` — евро, \n- `TRY` — турецкая лира, \n- `CNY` — юань, \n- `RUB` — рубль, \n- `GBP` — фунт стерлингов.\n\nЗначение по умолчанию — `USD`.\n" + } + } + }, + "v2InvoiceGetV2Response": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/InvoiceGetV2ResponseResult" + } + } + }, + "v1InvoiceDeleteRequest": { + "required": [ + "posting_number" + ], + "type": "object", + "title": "object", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + } + } + }, + "v1InvoiceDeleteResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "type": "boolean", + "description": "Результат работы метода." + } + } + }, + "reportReportInfoRequest": { + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string", + "description": "Уникальный идентификатор отчёта." + } + }, + "title": "ReportInfo", + "type": "object" + }, + "reportReportinfo": { + "properties": { + "code": { + "type": "string", + "description": "Уникальный идентификатор отчёта." + }, + "created_at": { + "format": "date-time", + "type": "string", + "description": "Дата создания отчёта." + }, + "error": { + "type": "string", + "description": "Код ошибки при генерации отчёта." + }, + "file": { + "type": "string", + "description": "Ссылка на XLSX-файл.\n\nДля отчёта с типом `SELLER_RETURNS` ссылка доступна 5 минут после выполнения запроса.\n" + }, + "params": { + "additionalProperties": { + "type": "string", + "description": "Фильтр." + }, + "type": "object", + "description": "Массив с фильтрами, указанными при создании отчёта продавцом." + }, + "report_type": { + "type": "string", + "description": "Тип отчёта:\n - `SELLER_PRODUCTS` — отчёт по товарам,\n - `SELLER_TRANSACTIONS` — отчёт по транзакциям,\n - `SELLER_PRODUCT_PRICES` — отчёт по ценам товаров,\n - `SELLER_STOCK` — отчёт об остатках товаров,\n - `SELLER_RETURNS` — отчёт о возвратах,\n - `SELLER_POSTINGS` — отчёт об отправлениях,\n - `SELLER_FINANCE` — отчёт о финансах,\n - `SELLER_PRODUCT_DISCOUNTED` — отчёт об уценённых товарах,\n - `DOCUMENT_B2B_SALES` — отчёт о продажах юридическим лицам,\n - `MUTUAL_SETTLEMENT` — отчёт о взаиморасчётах,\n - `SELLER_RETURNS_V2` — отчёт о возвратах FBO и FBS,\n - `COMPENSATION` — отчёт о компенсациях,\n - `DECOMPENSATION` — отчёт о декомпенсациях.\n" + }, + "status": { + "type": "string", + "description": "Статус генерации отчёта:\n - `waiting` — в очереди на обработку,\n - `processing` — обрабатывается,\n - `success` — отчёт успешно создан,\n - `failed` — ошибка при создании отчёта.\n" + } + }, + "title": "Common", + "type": "object", + "description": "Информация об отчёте." + }, + "reportReportInfoResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/reportReportinfo" + } + }, + "type": "object", + "title": "object" + }, + "ReportListRequestReportType": { + "default": "ALL", + "enum": null, + "type": "string", + "title": "string", + "description": "Тип отчёта:\n - `ALL` — все отчёты,\n - `SELLER_PRODUCTS` — отчёт по товарам,\n - `SELLER_TRANSACTIONS` — отчёт по транзакциям,\n - `SELLER_PRODUCT_PRICES` — отчёт по ценам товаров,\n - `SELLER_STOCK` — отчёт об остатках товаров,\n - `SELLER_RETURNS` — отчёт о возвратах,\n - `SELLER_POSTINGS` — отчёт об отправлениях,\n - `SELLER_FINANCE` — отчёт о финансах,\n - `SELLER_PRODUCT_DISCOUNTED` — отчёт об уценённых товарах,\n - `DOCUMENT_B2B_SALES` — отчёт о продажах юридическим лицам,\n - `MUTUAL_SETTLEMENT` — отчёт о взаиморасчётах,\n - `SELLER_RETURNS_V2` — отчёт о возвратах FBO и FBS,\n - `COMPENSATION` — отчёт о компенсациях,\n - `DECOMPENSATION` — отчёт о декомпенсациях.\n" + }, + "reportReportListRequest": { + "required": [ + "page", + "page_size" + ], + "properties": { + "page": { + "format": "int32", + "type": "integer", + "description": "Номер страницы." + }, + "page_size": { + "format": "int32", + "type": "integer", + "description": "Количество значений на странице:\n - по умолчанию — 100,\n - маĸсимальное значение — 1000.\n" + }, + "report_type": { + "$ref": "#/components/schemas/ReportListRequestReportType" + } + }, + "title": "ReportList", + "type": "object" + }, + "reportReport": { + "properties": { + "code": { + "type": "string", + "description": "Уникальный идентификатор отчёта. Чтобы получить отчёт, передайте это значение в метод [/v1/report/info](#operation/ReportAPI_ReportInfo)." + }, + "created_at": { + "format": "date-time", + "type": "string", + "description": "Дата создания отчёта." + }, + "error": { + "type": "string", + "description": "Код ошибки при генерации отчёта." + }, + "file": { + "type": "string", + "description": "Ссылка на XLSX-файл.\n\nДля отчёта с типом `SELLER_RETURNS` ссылка доступна 5 минут после выполнения запроса.\n" + }, + "params": { + "additionalProperties": { + "type": "string", + "description": "Фильтр." + }, + "type": "object", + "description": "Массив с фильтрами, указанными при создании отчёта продавцом." + }, + "report_type": { + "type": "string", + "description": "Тип отчёта:\n - `SELLER_PRODUCTS` — отчёт по товарам,\n - `SELLER_TRANSACTIONS` — отчёт по транзакциям,\n - `SELLER_PRODUCT_PRICES` — отчёт по ценам товаров,\n - `SELLER_STOCK` — отчёт об остатках товаров,\n - `SELLER_RETURNS` — отчёт о возвратах,\n - `SELLER_POSTINGS` — отчёт об отправлениях,\n - `SELLER_FINANCE` — отчёт о финансах,\n - `SELLER_PRODUCT_DISCOUNTED` — отчёт об уценённых товарах,\n - `DOCUMENT_B2B_SALES` — отчёт о продажах юридическим лицам,\n - `MUTUAL_SETTLEMENT` — отчёт о взаиморасчётах,\n - `SELLER_RETURNS_V2` — отчёт о возвратах FBO и FBS,\n - `COMPENSATION` — отчёт о компенсациях,\n - `DECOMPENSATION` — отчёт о декомпенсациях.\n" + }, + "status": { + "type": "string", + "description": "Статус генерации отчёта:\n - `waiting` — в очереди на обработку,\n - `processing` — обрабатывается,\n - `success` — отчёт успешно создан,\n - `failed` — ошибка при создании отчёта.\n" + } + }, + "title": "Common", + "type": "object", + "description": "Информация об отчёте." + }, + "ReportListResponseResult": { + "properties": { + "reports": { + "items": { + "$ref": "#/components/schemas/reportReport" + }, + "type": "array", + "description": "Массив со всеми сгенерированными отчётами." + }, + "total": { + "format": "int32", + "type": "integer", + "description": "Суммарное количество отчётов." + } + }, + "type": "object", + "title": "object", + "description": "Результаты запроса." + }, + "reportReportListResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/ReportListResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "reportLanguage": { + "default": "DEFAULT", + "enum": null, + "title": "Language", + "type": "string", + "description": "Язык ответа:\n - `RU` — русский,\n - `EN` — английский.\n" + }, + "reportCreateCompanyProductsReportRequestVisibility": { + "default": "ALL", + "enum": null, + "type": "string", + "title": "string", + "description": "Фильтр по видимости товара:\n - `ALL` — все товары, кроме архивных.\n - `VISIBLE` — товары, которые видны покупателям.\n - `INVISIBLE` — товары, которые не видны покупателям.\n - `EMPTY_STOCK` — товары, у которых не указано наличие.\n - `NOT_MODERATED` — товары, которые не прошли модерацию.\n - `MODERATED` — товары, которые прошли модерацию.\n - `DISABLED` — товары, которые видны покупателям, но недоступны к покупке.\n - `STATE_FAILED` — товары, создание которых завершилось ошибкой.\n - `READY_TO_SUPPLY` — товары, готовые к поставке.\n - `VALIDATION_STATE_PENDING` — товары, которые проходят проверку валидатором на премодерации.\n - `VALIDATION_STATE_FAIL` — товары, которые не прошли проверку валидатором на премодерации.\n - `VALIDATION_STATE_SUCCESS` — товары, которые прошли проверку валидатором на премодерации.\n - `TO_SUPPLY` — товары, готовые к продаже.\n - `IN_SALE` — товары в продаже.\n - `REMOVED_FROM_SALE` — товары, скрытые от покупателей.\n - `BANNED` — заблокированные товары.\n - `OVERPRICED` — товары с завышенной ценой.\n - `CRITICALLY_OVERPRICED` — товары со слишком завышенной ценой.\n - `EMPTY_BARCODE` — товары без штрихкода.\n - `BARCODE_EXISTS` — товары со штрихкодом.\n - `QUARANTINE` — товары на карантине после изменения цены более чем на 50%.\n" + }, + "reportCreateCompanyProductsReportRequest": { + "properties": { + "language": { + "$ref": "#/components/schemas/reportLanguage" + }, + "offer_id": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "search": { + "type": "string", + "description": "Поиск по содержанию записи, проверяет наличие." + }, + "sku": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "visibility": { + "$ref": "#/components/schemas/reportCreateCompanyProductsReportRequestVisibility" + } + }, + "title": "CreateCompanyProductsReport", + "type": "object" + }, + "CreateReportResponseCode": { + "properties": { + "code": { + "type": "string", + "description": "Уникальный идентификатор отчёта. По нему вы можете получить отчёт в течение 3 дней после запроса. Чтобы получить отчёт, передайте это значение в метод [/v1/report/info](#operation/ReportAPI_ReportInfo)." + } + }, + "type": "object", + "title": "object", + "description": "Результаты запроса." + }, + "reportCreateReportResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/CreateReportResponseCode" + } + }, + "type": "object", + "title": "object" + }, + "v2ReportReturnsCreateRequestFilter": { + "properties": { + "delivery_schema": { + "type": "string", + "enum": [ + "FBS", + "FBO", + "ALL" + ], + "description": "Фильтр по схеме работы: \n- `FBS` — возвраты на свой склад. \n- `FBO` — возвраты на склад маркетплейса.\n- `ALL` — все возвраты.\n" + }, + "date_from": { + "type": "string", + "format": "date-time", + "description": "Дата, с которой данные отображаются в отчёте.\n\nДоступно только за последние три месяца.\n" + }, + "date_to": { + "type": "string", + "format": "date-time", + "description": "Дата, по которую данные отображаются в отчёте.\n\nДоступно только за последние три месяца.\n" + }, + "status": { + "type": "string", + "enum": [ + "DisputeOpened", + "OnSellerApproval", + "ArrivedAtReturnPlace", + "OnSellerClarification", + "OnSellerClarificationAfterPartialCompensation", + "OfferedPartialCompensation", + "ReturnMoneyApproved", + "PartialCompensationReturned", + "CancelledDisputeNotOpen", + "Rejected", + "CrmRejected", + "Cancelled", + "Approved", + "ApprovedByOzon", + "ReceivedBySeller", + "MovingToSeller", + "ReturnCompensated", + "ReturningToSellerByCourier", + "Utilizing", + "Utilized", + "MoneyReturned", + "PartialCompensationInProcess", + "DisputeYouOpened", + "CompensationRejected", + "DisputeOpening", + "CompensationOffered", + "WaitingCompensation", + "SendingError", + "CompensationRejectedBySla", + "CompensationRejectedBySeller", + "MovingToOzon", + "ReturnedToOzon", + "MoneyReturnedBySystem", + "WaitingShipment" + ], + "description": "Фильтр по статусу возврата:\n- `DisputeOpened` — открыт спор с покупателем;\n- `OnSellerApproval` — на согласовании у продавца;\n- `ArrivedAtReturnPlace` — в пункте выдачи;\n- `OnSellerClarification` — на уточнении у продавца;\n- `OnSellerClarificationAfterPartialCompensation` — на уточнении у продавца после частичной компенсации;\n- `OfferedPartialCompensation` — предложена частичная компенсация;\n- `ReturnMoneyApproved` — одобрен возврат денег;\n- `PartialCompensationReturned` — вернули часть денег;\n- `CancelledDisputeNotOpen` — возврат отклонён, спор не открыт;\n- `Rejected` — заявка отклонена;\n- `CrmRejected` — заявка отклонена Ozon;\n- `Cancelled` — заявка отменена;\n- `Approved` — заявка одобрена продавцом;\n- `ApprovedByOzon` — заявка одобрена Ozon;\n- `ReceivedBySeller` — продавец получил возврат;\n- `MovingToSeller` — возврат на пути к продавцу;\n- `ReturnCompensated` — продавец получил компенсацию;\n- `ReturningToSellerByCourier` — курьер везёт возврат продавцу;\n- `Utilizing` — на утилизации;\n- `Utilized` — утилизирован;\n- `MoneyReturned` — покупателю вернули всю сумму;\n- `PartialCompensationInProcess` — одобрен частичный возврат денег;\n- `DisputeYouOpened` — продавец открыл спор;\n- `CompensationRejected` — отказано в компенсации;\n- `DisputeOpening` — обращение в поддержку отправлено;\n- `CompensationOffered` — ожидает вашего решения по компенсации;\n- `WaitingCompensation` — ожидает компенсации;\n- `SendingError` — ошибка при отправке обращения в поддержку;\n- `CompensationRejectedBySla` — истёк срок решения;\n- `CompensationRejectedBySeller` — продавец отказался от компенсации;\n- `MovingToOzon` — едет на склад Ozon;\n- `ReturnedToOzon` — на складе Ozon;\n- `MoneyReturnedBySystem` — быстрый возврат;\n- `WaitingShipment` — ожидает отправки.\n" + } + }, + "type": "object", + "title": "object", + "description": "Фильтр.", + "required": [ + "date_from", + "date_to", + "status" + ] + }, + "v2ReportReturnsCreateRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "type": "object", + "description": "Фильтр.", + "$ref": "#/components/schemas/v2ReportReturnsCreateRequestFilter" + }, + "language": { + "$ref": "#/components/schemas/reportLanguage" + } + } + }, + "v2ReportReturnsCreateResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/CreateReportResponseCode" + } + } + }, + "reportCreateCompanyPostingsReportRequestFilter": { + "properties": { + "cancel_reason_id": { + "description": "Идентификатор причины отмены.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, + "delivery_schema": { + "description": "Схема работы — FBO или FBS.\n\nЗа один запрос вы можете передать только одно значение:\n* `fbo` — чтобы получить отчёт по схеме FBO,\n* `fbs` — чтобы получить отчёт по схеме FBS.\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "offer_id": { + "description": "Идентификатор товара в системе продавца — артикул.", + "type": "string" + }, + "processed_at_from": { + "format": "date-time", + "type": "string", + "description": "Время, когда заказ попал в обработку." + }, + "processed_at_to": { + "format": "date-time", + "type": "string", + "description": "Время, когда заказ появился в личном кабинете." + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, + "status_alias": { + "description": "Текст статуса.", + "items": { + "type": "string" + }, + "type": "array" + }, + "statuses": { + "description": "Числовой статус.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, + "title": { + "description": "Название товара.", + "type": "string" + } + }, + "type": "object", + "title": "object", + "description": "Фильтр." + }, + "reportCreateCompanyPostingsReportRequest": { + "required": [ + "filter" + ], + "properties": { + "filter": { + "$ref": "#/components/schemas/reportCreateCompanyPostingsReportRequestFilter" + }, + "language": { + "$ref": "#/components/schemas/reportLanguage" + } + }, + "type": "object", + "title": "object" + }, + "financev3Period": { + "type": "object", + "title": "object", + "description": "Период формирования отчёта.", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "Дата, с ĸоторой рассчитывается отчёт." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Дата, по ĸоторую рассчитывается отчёт." + } + }, + "required": [ + "from", + "to" + ] + }, + "v3FinanceCashFlowStatementListRequest": { + "type": "object", + "title": "object", + "properties": { + "date": { + "$ref": "#/components/schemas/financev3Period" + }, + "page": { + "format": "int32", + "type": "integer", + "description": "Номер страницы, возвращаемой в запросе." + }, + "with_details": { + "type": "boolean", + "description": "`true`, если нужно добавить дополнительные параметры в ответ." + }, + "page_size": { + "format": "int32", + "type": "integer", + "description": "Количество элементов на странице." + } + }, + "required": [ + "page", + "page_size", + "date" + ] + }, + "v3FinanceCashFlowStatementListResponsePeriod": { + "type": "object", + "title": "object", + "description": "Период.", + "properties": { + "begin": { + "type": "string", + "format": "date-time", + "description": "Начало периода." + }, + "end": { + "type": "string", + "format": "date-time", + "description": "Конец периода." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор." + } + } + }, + "FinanceCashFlowStatementListResponseCashFlow": { + "type": "object", + "title": "object", + "properties": { + "period": { + "$ref": "#/components/schemas/v3FinanceCashFlowStatementListResponsePeriod" + }, + "orders_amount": { + "type": "number", + "format": "double", + "description": "Сумма цен реализованных товаров." + }, + "returns_amount": { + "type": "number", + "format": "double", + "description": "Сумма цен возвращённых товаров." + }, + "commission_amount": { + "type": "number", + "format": "double", + "description": "Комиссия Ozon за реализацию товаров." + }, + "services_amount": { + "type": "number", + "format": "double", + "description": "Сумма дополнительных услуг." + }, + "item_delivery_and_return_amount": { + "type": "number", + "format": "double", + "description": "Сумма услуг логистики." + }, + "currency_code": { + "type": "string", + "description": "Код валюты, в которой рассчитываются комиссии." + } + } + }, + "FinanceCashFlowStatementListResponseDeliveryService": { + "type": "object", + "title": "object", + "description": "Детализация.", + "properties": { + "name": { + "type": "string", + "description": "Название операции. Возможные значения:\n - `MarketplaceServiceItemDirectFlowLogisticSum` — логистика,\n - `MarketplaceServiceItemDirectFlowLogisticDC` — логистика РЦ,\n - `MarketplaceServiceItemDropoff` — обработка отправления Drop-off,\n - `MarketplaceServiceItemDirectFlowTrans` — магистраль,\n - `MarketplaceServiceDCFlowTrans` — магистраль РЦ,\n - `MarketplaceServiceItemFulfillment` — сборка заказа,\n - `MarketplaceServiceItemDelivToCustomer` — последняя миля.\n" + }, + "price": { + "type": "number", + "format": "double", + "description": "Сумма по операции." + } + } + }, + "DetailsServices": { + "type": "object", + "title": "object", + "description": "Плата за обработку и доставку.", + "properties": { + "total": { + "description": "Общая сумма.", + "type": "number", + "format": "double" + }, + "items": { + "description": "Детализация.", + "type": "array", + "items": null, + "$ref": "#/components/schemas/FinanceCashFlowStatementListResponseDeliveryService" + } + } + }, + "DetailsDeliveryDetails": { + "type": "object", + "title": "object", + "description": "Заказы.", + "properties": { + "total": { + "type": "number", + "format": "double", + "description": "Общая сумма." + }, + "amount": { + "type": "number", + "format": "double", + "description": "Сумма, на которую выкуплено товаров с учётом комиссий." + }, + "delivery_services": { + "$ref": "#/components/schemas/DetailsServices", + "description": "Плата за обработку и доставку." + } + } + }, + "DetailsPayment": { + "type": "object", + "title": "object", + "description": "Выплачено за период.", + "properties": { + "currency_code": { + "type": "string", + "description": "Валюта." + }, + "payment": { + "type": "number", + "format": "double", + "description": "Сумма выплаты." + } + } + }, + "FinanceCashFlowStatementListResponseReturnService": { + "type": "object", + "title": "object", + "description": "Детализация.", + "properties": { + "name": { + "type": "string", + "description": "Название операции. Возможные значения:\n - `MarketplaceServiceItemReturnAfterDelivToCustomer` — обработка возвратов,\n - `MarketplaceServiceItemReturnPartGoodsCustomer` — обработка частичного невыкупа,\n - `MarketplaceServiceItemReturnNotDelivToCustomer` — обработка отменённых и невостребованных товаров,\n - `MarketplaceServiceItemReturnFlowLogistic` — обратная логистика.\n" + }, + "price": { + "type": "number", + "format": "double", + "description": "Сумма по операции." + } + } + }, + "DetailsReturns": { + "type": "object", + "title": "object", + "description": "Плата за возвраты и отмены.", + "properties": { + "total": { + "description": "Общая сумма.", + "type": "number", + "format": "double" + }, + "items": { + "description": "Детализация.", + "type": "array", + "items": null, + "$ref": "#/components/schemas/FinanceCashFlowStatementListResponseReturnService" + } + } + }, + "DetailsReturnDetails": { + "type": "object", + "title": "object", + "description": "Возвраты и отмены.", + "properties": { + "total": { + "type": "number", + "format": "double", + "description": "Общая сумма." + }, + "amount": { + "type": "number", + "format": "double", + "description": "Сумма, на которую получено возвратов с учётом комиссий." + }, + "return_services": { + "$ref": "#/components/schemas/DetailsReturns", + "description": "Плата за возвраты и отмены." + } + } + }, + "DetailsRfbsDetails": { + "type": "object", + "title": "object", + "description": "Перечисления по схеме rFBS.", + "properties": { + "total": { + "type": "number", + "format": "double", + "description": "Общая сумма." + }, + "transfer_delivery": { + "type": "number", + "format": "double", + "description": "Перечисления от покупателей." + }, + "transfer_delivery_return": { + "type": "number", + "format": "double", + "description": "Возврат перечислений покупателям." + }, + "compensation_delivery_return": { + "type": "number", + "format": "double", + "description": "Компенсация перечислений за доставку." + }, + "partial_compensation": { + "type": "number", + "format": "double", + "description": "Перечисления частичных компенсаций покупателям." + }, + "partial_compensation_return": { + "type": "number", + "format": "double", + "description": "Возврат частичных компенсаций." + } + } + }, + "FinanceCashFlowStatementListResponseService": { + "type": "object", + "title": "object", + "description": "Детализация.", + "properties": { + "name": { + "type": "string", + "description": "Название операции:\n - `MarketplaceServiceItemElectronicServiceStencil` — услуга «Трафареты»;\n - `MarketplaceServiceItemElectronicServicesPromotionInSearch` — услуга «Продвижение в поиске»;\n - `MarketplaceServiceItemElectronicServicesBrandShelf` — услуга «Брендовая полка»;\n - `MarketplaceServiceBrandPromotion` и `MarketplaceServiceBrandCommission` — услуга «Продвижение бренда»;\n - `MarketplaceServiceItemMarketingServices` — маркетинговые услуги; \n - `MarketplaceServiceItemTechnicalServicesAndOtherServices` — технические и иные услуги; \n - `MarketplaceServiceItemOtherElectronicServices` — иные электронные услуги; \n - `ItemAgentServiceStarsMembership` — звёздные товары;\n - `MarketplaceReturnStorageServiceAtThePickupPointFbsItem` — краткосрочное размещение возврата FBS;\n - `MarketplaceSaleReviewsItem` — приобретение отзывов на платформе;\n - `MarketplaceServicePremiumCashbackIndividualPoints` — услуга продвижения «Бонусы продавца»;\n - `OperationMarketplaceServiceStorage` — услуга размещения товаров;\n - `MarketplaceServiceStockDisposal` — утилизация со стока;\n - `MarketplaceReturnDisposalServiceFbsItem` — утилизация FBS;\n - `MarketplaceServiceItemFlexiblePaymentSchedule` — услуга «Гибкий график выплат»;\n - `MarketplaceServiceProcessingSpoilage` — обработка брака;\n - `MarketplaceServiceProcessingIdentifiedSurplus` — обработка опознанных излишков;\n - `MarketplaceServiceProcessingIdentifiedDiscrepancies` — бронирование места для размещения на складе;\n - `MarketplaceServiceItemInternetSiteAdvertising` — реклама на сайте Ozon;\n - `MarketplaceServiceItemSubscribtionPremium` — премиум-подписка;\n - `MarketplaceAgencyFeeAggregator3PLGlobalItem` — агентское вознаграждение Ozon.\n" + }, + "price": { + "type": "number", + "format": "double", + "description": "Сумма по операции." + } + } + }, + "DetailsService": { + "type": "object", + "title": "object", + "description": "Услуги.", + "properties": { + "total": { + "description": "Общая сумма.", + "type": "number", + "format": "double" + }, + "items": { + "description": "Детализация.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FinanceCashFlowStatementListResponseService" + } + } + } + }, + "FinanceCashFlowStatementListResponseDetailsOthers": { + "type": "object", + "title": "object", + "description": "Детализация.", + "properties": { + "name": { + "type": "string", + "description": "Название операции. Возможные значения:\n - `MarketplaceRedistributionOfAcquiringOperation` — оплата эквайринга,\n - `MarketplaceSellerCompensationLossOfGoodsOperation` — компенсация за уничтоженный товар,\n - `MarketplaceSellerCorrectionOperation` — корректировка стоимости услуг,\n - `OperationCorrectionSeller` — инвентаризация взаиморасчётов,\n - `OperationMarketplaceWithHoldingForUndeliverableGoods` — компенсация за недовложение товаров,\n - `OperationClaim` — начисления по претензиям.\n" + }, + "price": { + "type": "number", + "format": "double", + "description": "Сумма по операции." + } + } + }, + "DetailsOthers": { + "type": "object", + "title": "object", + "description": "Компенсация и прочие начисления.", + "properties": { + "total": { + "description": "Общая сумма.", + "type": "number", + "format": "double" + }, + "items": { + "description": "Детализация.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FinanceCashFlowStatementListResponseDetailsOthers" + } + } + } + }, + "FinanceCashFlowStatementListResponseDetails": { + "type": "object", + "title": "object", + "description": "Детализированная информация.", + "properties": { + "begin_balance_amount": { + "type": "number", + "format": "double", + "description": "Баланс на начало периода." + }, + "delivery": { + "$ref": "#/components/schemas/DetailsDeliveryDetails", + "description": "Результат работы метода." + }, + "invoice_transfer": { + "type": "number", + "format": "double", + "description": "Сумма к выплате за период." + }, + "loan": { + "type": "number", + "format": "double", + "description": "Перевод по договорам займа." + }, + "payments": { + "description": "Выплачено в периоде.", + "type": "array", + "items": null, + "$ref": "#/components/schemas/DetailsPayment" + }, + "period": { + "$ref": "#/components/schemas/v3FinanceCashFlowStatementListResponsePeriod", + "description": "Период." + }, + "return": { + "$ref": "#/components/schemas/DetailsReturnDetails" + }, + "rfbs": { + "$ref": "#/components/schemas/DetailsRfbsDetails", + "description": "Перечисления по схеме rFBS." + }, + "services": { + "$ref": "#/components/schemas/DetailsService", + "description": "Услуги." + }, + "others": { + "$ref": "#/components/schemas/DetailsOthers", + "description": "Компенсация и прочие начисления." + }, + "end_balance_amount": { + "type": "number", + "format": "double", + "description": "Баланс на конец периода." + } + } + }, + "v3FinanceCashFlowStatementListResponseResult": { + "type": "object", + "title": "object", + "description": "Результат работы метода.", + "properties": { + "cash_flows": { + "description": "Список отчётов.", + "items": { + "$ref": "#/components/schemas/FinanceCashFlowStatementListResponseCashFlow" + } + }, + "details": { + "type": "array", + "items": null, + "$ref": "#/components/schemas/FinanceCashFlowStatementListResponseDetails", + "description": "Детализированная информация." + }, + "page_count": { + "type": "integer", + "format": "int64", + "description": "Количество страниц с отчётами." + } + } + }, + "v3FinanceCashFlowStatementListResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/v3FinanceCashFlowStatementListResponseResult" + } + } + }, + "reportCreateDiscountedRequest": { + "type": "object", + "title": "object" + }, + "reportCreateDiscountedResponse": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "string", + "description": "Уникальный идентификатор отчёта. Чтобы получить отчёт, передайте это значение в метод [/v1/report/info](#operation/ReportAPI_ReportInfo)." + } + } + }, + "v1CreateStockByWarehouseReportRequest": { + "required": [ + "warehouseId" + ], + "type": "object", + "title": "object", + "properties": { + "language": { + "$ref": "#/components/schemas/reportLanguage" + }, + "warehouseId": { + "description": "Идентификаторы складов.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "commonCreateReportResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/CreateReportResponseCode" + } + } + }, + "seller_serviceanalyticsDimension": { + "default": "unknownDimension", + "enum": null, + "type": "string", + "title": "string" + }, + "FilterOp": { + "default": "EQ", + "enum": null, + "type": "string", + "title": "string", + "description": "
\n\nОперация сравнения:\n - `EQ` — равно,\n - `GT` — больше,\n - `GTE` — больше или равно,\n - `LT` — меньше,\n - `LTE` — меньше или равно.\n" + }, + "analyticsFilter": { + "properties": { + "key": { + "type": "string", + "description": "Параметр сортировки. Можно передать любой атрибут из параметров `dimension` и `metric`, кроме атрибута `brand`." + }, + "op": { + "$ref": "#/components/schemas/FilterOp" + }, + "value": { + "type": "string", + "description": "Значение для сравнения." + } + }, + "type": "object", + "title": "object" + }, + "analyticsMetric": { + "default": "unknown_metric", + "enum": null, + "type": "string", + "title": "string" + }, + "SortingOrder": { + "default": "ASC", + "enum": null, + "type": "string", + "title": "string", + "description": "Вид сортировки:\n - `ASC` — по возрастанию,\n - `DESC` — по убыванию.\n" + }, + "analyticsSorting": { + "properties": { + "key": { + "type": "string", + "description": "Метрика, по которой будет отсортирован результат запроса." + }, + "order": { + "$ref": "#/components/schemas/SortingOrder" + } + }, + "type": "object", + "title": "object" + }, + "analyticsAnalyticsGetDataRequest": { + "required": [ + "date_from", + "date_to", + "dimension", + "metrics", + "limit" + ], + "properties": { + "date_from": { + "type": "string", + "description": "Дата, с которой будут данные в отчёте.\n\nЕсли у вас нет Premium-подписки, укажите дату в пределах последних трёх месяцев.\n" + }, + "date_to": { + "type": "string", + "description": "Дата, по которую будут данные в отчёте." + }, + "dimension": { + "items": { + "$ref": "#/components/schemas/seller_serviceanalyticsDimension" + }, + "type": "array", + "description": "Группировка данных в отчёте.\n\nСпособы группировки, доступные всем продавцам:\n - `unknownDimension` — неизвестное измерение,\n - `sku` — идентификатор товара,\n - `spu` — идентификатор товара,\n - `day` — день,\n - `week` — неделя,\n - `month` — месяц.\n\nСпособы группировки, доступные только продавцам с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus):\n - `year` — год,\n - `category1` — категория первого уровня,\n - `category2` — категория второго уровня,\n - `category3` — категория третьего уровня,\n - `category4` — категория четвертого уровня,\n - `brand` — бренд,\n - `modelID` — модель.\n" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/analyticsFilter" + }, + "type": "array", + "description": "Фильтры." + }, + "limit": { + "format": "int64", + "type": "integer", + "description": "Количество значений в ответе:\n - максимум — 1000,\n - минимум — 1.\n" + }, + "metrics": { + "items": { + "$ref": "#/components/schemas/analyticsMetric" + }, + "type": "array", + "description": "Укажите до 14 метрик. Если их будет больше, вы получите ошибку с кодом `InvalidArgument`.\n\nСписок метриĸ, по ĸоторым будет сформирован отчёт.\n\nМетрики, доступные всем продавцам:\n - `revenue` — заказано на сумму,\n - `ordered_units` — заказано товаров.\n\nМетрики, доступные только продавцам с подпиской [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus):\n - `unknown_metric` — неизвестная метрика.\n - `hits_view_search` — показы в поиске и в категории.\n - `hits_view_pdp` — показы на карточке товара.\n - `hits_view` — всего показов.\n - `hits_tocart_search` — в корзину из поиска или категории.\n - `hits_tocart_pdp` — в корзину из карточки товара.\n - `hits_tocart` — всего добавлено в корзину.\n - `session_view_search` — сессии с показом в поиске или в каталоге. Считаются уникальные посетители с просмотром в поиске или каталоге.\n - `session_view_pdp` — сессии с показом на карточке товара. Считаются уникальные посетители, которые просмотрели карточку товара.\n - `session_view` — всего сессий. Считаются уникальные посетители.\n - `conv_tocart_search` — конверсия в корзину из поиска или категории.\n - `conv_tocart_pdp` — конверсия в корзину из карточки товара.\n - `conv_tocart` — общая конверсия в корзину.\n - `returns` — возвращено товаров.\n - `cancellations` — отменено товаров.\n - `delivered_units` — доставлено товаров.\n - `position_category` — позиция в поиске и категории.\n" + }, + "offset": { + "format": "int64", + "type": "integer", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента." + }, + "sort": { + "items": { + "$ref": "#/components/schemas/analyticsSorting" + }, + "type": "array", + "description": "Настройки сортировки отчёта." + } + }, + "type": "object", + "title": "object" + }, + "analyticsDataRowDimension": { + "properties": { + "id": { + "type": "string", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "name": { + "type": "string", + "description": "Наименование." + } + }, + "type": "object", + "title": "object" + }, + "analyticsDataRow": { + "properties": { + "dimensions": { + "items": { + "$ref": "#/components/schemas/analyticsDataRowDimension" + }, + "type": "array", + "description": "Группировка данных в отчёте." + }, + "metrics": { + "items": { + "format": "double", + "type": "number" + }, + "type": "array", + "description": "Список значений метрики." + } + }, + "type": "object", + "title": "object" + }, + "AnalyticsGetDataResponseResult": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/analyticsDataRow" + }, + "type": "array", + "description": "Массив данных." + }, + "totals": { + "items": { + "format": "double", + "type": "number" + }, + "type": "array", + "description": "Итоговые и средние значения метрик." + } + }, + "type": "object", + "title": "object", + "description": "Результаты запроса." + }, + "analyticsAnalyticsGetDataResponse": { + "properties": { + "result": { + "$ref": "#/components/schemas/AnalyticsGetDataResponseResult" + }, + "timestamp": { + "type": "string", + "description": "Время создания отчёта." + } + }, + "type": "object", + "title": "object" + }, + "AnalyticsGetStockOnWarehousesRequestWarehouseType": { + "default": "ALL", + "enum": [ + "ALL", + "EXPRESS_DARK_STORE", + "NOT_EXPRESS_DARK_STORE" + ], + "description": "Фильтр по типу склада:\n - `EXPRESS_DARK_STORE` — склады Ozon с доставкой Fresh.\n - `NOT_EXPRESS_DARK_STORE` — склады Ozon без доставки Fresh.\n - `ALL` — все склады Ozon.\n", + "type": "string" + }, + "analyticsStockOnWarehouseRequest": { + "required": [ + "limit" + ], + "type": "object", + "title": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int64", + "description": "Количество ответов на странице. По умолчанию — 100." + }, + "offset": { + "type": "integer", + "format": "int64", + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента." + }, + "warehouse_type": { + "$ref": "#/components/schemas/AnalyticsGetStockOnWarehousesRequestWarehouseType" + } + } + }, + "analyticsStockOnWarehouseResultRows": { + "type": "object", + "title": "object", + "properties": { + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "item_code": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "item_name": { + "type": "string", + "description": "Название товара в системе Ozon." + }, + "free_to_sell_amount": { + "type": "integer", + "format": "int64", + "description": "Количество товара, доступное к продаже на Ozon." + }, + "promised_amount": { + "type": "integer", + "format": "int64", + "description": "Количество товара, указанное в подтверждённых будущих поставках." + }, + "reserved_amount": { + "type": "integer", + "format": "int64", + "description": "Количество товара, зарезервированное для покупки, возврата и перевозки между складами." + }, + "warehouse_name": { + "type": "string", + "description": "Название склада, где находится товар." + } + } + }, + "analyticsStockOnWarehouseResponseResult": { + "type": "object", + "title": "object", + "description": "Результат запроса.", + "properties": { + "rows": { + "type": "array", + "description": "Информация о товарах и остатках.", + "items": { + "$ref": "#/components/schemas/analyticsStockOnWarehouseResultRows" + } + } + } + }, + "analyticsStockOnWarehouseResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/analyticsStockOnWarehouseResponseResult" + } + } + }, + "v1AnalyticsTurnoverStocksRequest": { + "type": "object", + "title": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "description": "Количество значений в ответе.\n" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Количество элементов, которое будет пропущено в ответе.\n\nНапример, если `offset = 10`, ответ начнётся с 11-го найденного элемента.\n" + }, + "sku": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Идентификаторы товаров в системе Ozon — SKU." + } + } + }, + "v1AnalyticsTurnoverStocksResponseItem": { + "type": "object", + "title": "object", + "properties": { + "ads": { + "type": "number", + "format": "double", + "description": "Среднесуточное количество проданных единиц товара за последние 60 дней." + }, + "current_stock": { + "type": "integer", + "format": "int64", + "description": "Остаток товара, шт." + }, + "idc": { + "type": "number", + "format": "double", + "description": "На сколько дней хватит остатка товара с учётом среднесуточных продаж." + }, + "idc_grade": { + "type": "string", + "enum": [ + "GRADES_NONE", + "GRADES_NOSALES", + "GRADES_GREEN", + "GRADES_YELLOW", + "GRADES_RED", + "GRADES_CRITICAL" + ], + "default": "GRADES_NONE", + "description": "Уровень остатка товара:\n- `GRADES_NONE` — ожидаются поставки;\n- `GRADES_NOSALES` — нет продаж;\n- `GRADES_GREEN` — зелёный, «хороший»;\n- `GRADES_YELLOW` — жёлтый, «средний»;\n- `GRADES_RED` — красный, «плохой»;\n- `GRADES_CRITICAL` — критический.\n" + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "turnover": { + "type": "number", + "format": "double", + "description": "Фактическая оборачиваемость в днях." + }, + "turnover_grade": { + "type": "string", + "enum": [ + "GRADES_NONE", + "GRADES_NOSALES", + "GRADES_GREEN", + "GRADES_YELLOW", + "GRADES_RED", + "GRADES_CRITICAL" + ], + "default": "GRADES_NONE", + "description": "Уровень оборачиваемости:\n- `GRADES_NONE` — ожидаются поставки;\n- `GRADES_NOSALES` — нет продаж;\n- `GRADES_GREEN` — зелёный, «хороший»;\n- `GRADES_YELLOW` — жёлтый, «средний»;\n- `GRADES_RED` — красный, «плохой»;\n- `GRADES_CRITICAL` — критический.\n" + } + } + }, + "v1AnalyticsTurnoverStocksResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "description": "Товары.", + "items": { + "$ref": "#/components/schemas/v1AnalyticsTurnoverStocksResponseItem" + } + } + } + }, + "AnalyticsProductQueriesRequestSortBy": { + "type": "string", + "description": "Параметр, по которому товары будут отсортированы. Возможные значения: \n- `BY_SEARCHES` — по количеству запросов;\n- `BY_VIEWS` — по количеству просмотров;\n- `BY_POSITION` — по средней позиции товара;\n- `BY_CONVERSION` — по значению конверсии;\n- `BY_GMV` — по объёму продаж по запросам.\n", + "default": "BY_SEARCHES", + "enum": [ + "BY_SEARCHES", + "BY_VIEWS", + "BY_POSITION", + "BY_CONVERSION", + "BY_GMV" + ] + }, + "AnalyticsProductQueriesRequestSortDir": { + "type": "string", + "default": "DESCENDING", + "description": "Направление сортировки:\n- `DESCENDING` — по убыванию;\n- `ASCENDING` — по возрастанию.\n", + "enum": [ + "DESCENDING", + "ASCENDING" + ] + }, + "v1AnalyticsProductQueriesRequest": { + "type": "object", + "properties": { + "date_from": { + "type": "string", + "format": "date-time", + "description": "Дата начала формирования аналитики." + }, + "date_to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания формирования аналитики." + }, + "page": { + "format": "int32", + "type": "integer", + "description": "Номер страницы, возвращаемой в запросе." + }, + "page_size": { + "format": "int32", + "type": "integer", + "description": "Количество элементов на странице." + }, + "skus": { + "type": "array", + "description": "Список SKU, идентификаторов товара в системе Ozon. По ним вернётся аналитика по запросам. Максимум — 1000 SKU.", + "items": { + "type": "string", + "format": "int64" + } + }, + "sort_by": { + "$ref": "#/components/schemas/AnalyticsProductQueriesRequestSortBy" + }, + "sort_dir": { + "$ref": "#/components/schemas/AnalyticsProductQueriesRequestSortDir" + } + }, + "required": [ + "page_size", + "date_from", + "skus" + ] + }, + "AnalyticsProductQueriesResponseAnalyticsPeriod": { + "type": "object", + "description": "Период, за который формируется аналитика.", + "properties": { + "date_from": { + "type": "string", + "description": "Дата начала формирования аналитики." + }, + "date_to": { + "type": "string", + "description": "Дата окончания формирования аналитики." + } + } + }, + "v1AnalyticsProductQueriesResponseItem": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "Название категории." + }, + "currency": { + "type": "string", + "description": "Валюта." + }, + "gmv": { + "type": "number", + "format": "float", + "description": "Продажи по запросам." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "position": { + "type": "number", + "format": "float", + "description": "Средняя позиция товара. Доступно только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus), иначе поле вернётся пустым." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "unique_search_users": { + "type": "integer", + "format": "int64", + "description": "Количество покупателей, которые искали ваш товар на Ozon." + }, + "unique_view_users": { + "type": "integer", + "format": "int64", + "description": "Количество покупателей, которые увидели ваш товар на Ozon. Доступно только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus), иначе поле вернётся пустым." + }, + "view_conversion": { + "type": "number", + "format": "float", + "description": "Конверсия из просмотра товара. Доступно только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus), иначе поле вернётся пустым." + } + } + }, + "v1AnalyticsProductQueriesResponse": { + "type": "object", + "properties": { + "analytics_period": { + "$ref": "#/components/schemas/AnalyticsProductQueriesResponseAnalyticsPeriod" + }, + "items": { + "type": "array", + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesResponseItem" + } + }, + "page_count": { + "type": "integer", + "format": "int64", + "description": "Количество страниц." + }, + "total": { + "type": "integer", + "format": "int64", + "description": "Общее количество запросов." + } + } + }, + "v1AnalyticsProductQueriesDetailsRequestSortBy": { + "type": "string", + "description": "Параметр, по которому товары будут отсортированы. Возможные значения: \n- `BY_SEARCHES` — по количеству запросов;\n- `BY_VIEWS` — по количеству просмотров;\n- `BY_POSITION` — по средней позиции товара;\n- `BY_CONVERSION` — по значению конверсии;\n- `BY_GMV` — по объёму продаж по запросам.\n\nСортировка по параметрам `BY_VIEWS`, `BY_POSITION` и `BY_CONVERSION` доступна только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).\n", + "default": "BY_SEARCHES", + "enum": [ + "BY_SEARCHES", + "BY_VIEWS", + "BY_POSITION", + "BY_CONVERSION", + "BY_GMV" + ] + }, + "v1AnalyticsProductQueriesDetailsRequestSortDir": { + "type": "string", + "default": "DESCENDING", + "description": "Направление сортировки:\n- `DESCENDING` — по убыванию;\n- `ASCENDING` — по возрастанию.\n", + "enum": [ + "DESCENDING", + "ASCENDING" + ] + }, + "v1AnalyticsProductQueriesDetailsRequest": { + "type": "object", + "properties": { + "date_from": { + "type": "string", + "format": "date-time", + "description": "Дата начала формирования аналитики." + }, + "date_to": { + "type": "string", + "format": "date-time", + "description": "Дата окончания формирования аналитики." + }, + "limit_by_sku": { + "type": "integer", + "format": "int32", + "description": "Лимит числа запросов по одному SKU. Максимум — 15 запросов." + }, + "page": { + "format": "int32", + "type": "integer", + "description": "Номер страницы, возвращаемой в запросе. Минимум — 0." + }, + "page_size": { + "format": "int32", + "type": "integer", + "description": "Количество элементов на странице. Максимум — 100." + }, + "skus": { + "type": "array", + "description": "Список SKU, идентификаторов товара в системе Ozon. По ним вернётся аналитика по запросам. Максимум — 1000 SKU.", + "items": { + "type": "string", + "format": "int64" + } + }, + "sort_by": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesDetailsRequestSortBy" + }, + "sort_dir": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesDetailsRequestSortDir" + } + }, + "required": [ + "page_size", + "date_from", + "skus", + "limit_by_sku" + ] + }, + "v1AnalyticsProductQueriesDetailsResponseAnalyticsPeriod": { + "type": "object", + "description": "Период, за который формируется аналитика.", + "properties": { + "date_from": { + "type": "string", + "description": "Дата начала формирования аналитики." + }, + "date_to": { + "type": "string", + "description": "Дата окончания формирования аналитики." + } + } + }, + "AnalyticsProductQueriesDetailsResponseQuery": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "Валюта." + }, + "gmv": { + "type": "number", + "format": "float", + "description": "Продажи по запросам." + }, + "order_count": { + "type": "integer", + "format": "int64", + "description": "Количество заказов по запросу." + }, + "position": { + "type": "number", + "format": "float", + "description": "Средняя позиция товара. Доступно только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus), иначе поле вернётся пустым." + }, + "query": { + "type": "string", + "description": "Текст запроса." + }, + "query_index": { + "type": "integer", + "format": "int64", + "description": "Порядковый номер запроса." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "unique_search_users": { + "type": "integer", + "format": "int64", + "description": "Количество покупателей, которые искали ваш товар на Ozon." + }, + "unique_view_users": { + "type": "integer", + "format": "int64", + "description": "Количество покупателей, которые увидели ваш товар на Ozon. Доступно только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus), иначе поле вернётся пустым." + }, + "view_conversion": { + "type": "number", + "format": "float", + "description": "Конверсия из просмотра товара. Доступно только с подпиской [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program) или [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus), иначе поле вернётся пустым." + } + } + }, + "v1AnalyticsProductQueriesDetailsResponse": { + "type": "object", + "properties": { + "analytics_period": { + "$ref": "#/components/schemas/v1AnalyticsProductQueriesDetailsResponseAnalyticsPeriod" + }, + "page_count": { + "type": "integer", + "format": "int64", + "description": "Количество страниц." + }, + "queries": { + "type": "array", + "description": "Список запросов.", + "items": { + "$ref": "#/components/schemas/AnalyticsProductQueriesDetailsResponseQuery" + } + }, + "total": { + "type": "integer", + "format": "int64", + "description": "Общее количество запросов." + } + } + }, + "v2GetRealizationReportRequestV2": { + "required": [ + "month", + "year" + ], + "type": "object", + "properties": { + "month": { + "description": "Месяц.", + "type": "integer", + "format": "int32" + }, + "year": { + "description": "Год.", + "type": "integer", + "format": "int32" + } + } + }, + "GetRealizationReportResponseV2Header": { + "properties": { + "contract_date": { + "type": "string", + "description": "Дата заключения договора." + }, + "contract_number": { + "type": "string", + "description": "Номер договора." + }, + "currency_sys_name": { + "type": "string", + "description": "Валюта." + }, + "doc_amount": { + "type": "number", + "format": "double", + "description": "Всего к начислению." + }, + "doc_date": { + "type": "string", + "description": "Дата формирования документа." + }, + "number": { + "type": "string", + "description": "Номер отчёта о реализации." + }, + "payer_inn": { + "type": "string", + "description": "ИНН плательщика." + }, + "payer_kpp": { + "type": "string", + "description": "КПП плательщика." + }, + "payer_name": { + "type": "string", + "description": "Название плательщика." + }, + "receiver_inn": { + "type": "string", + "description": "ИНН получателя." + }, + "receiver_kpp": { + "type": "string", + "description": "КПП получателя." + }, + "receiver_name": { + "type": "string", + "description": "Название получателя." + }, + "start_date": { + "type": "string", + "description": "Начало периода." + }, + "stop_date": { + "type": "string", + "description": "Конец периода." + }, + "vat_amount": { + "type": "number", + "format": "double", + "description": "Сумма НДС в составе начислений." + } + }, + "type": "object", + "title": "object", + "description": "Титульный лист отчёта." + }, + "RowItemCommission": { + "properties": { + "amount": { + "type": "number", + "format": "double", + "description": "Сумма." + }, + "bonus": { + "type": "number", + "format": "double", + "description": "Баллы за скидки." + }, + "commission": { + "type": "number", + "format": "double", + "description": "Итого комиссия с учётом скидок и наценки." + }, + "compensation": { + "type": "number", + "format": "double", + "description": "Доплата за счёт Ozon." + }, + "price_per_instance": { + "type": "number", + "format": "double", + "description": "Цена за экземпляр." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + }, + "standard_fee": { + "type": "number", + "format": "double", + "description": "Базовое вознаграждение Ozon." + }, + "bank_coinvestment": { + "type": "number", + "format": "double", + "description": "Выплаты по механикам лояльности партнёров: зелёные цены." + }, + "stars": { + "type": "number", + "format": "double", + "description": "Выплаты по механикам лояльности партнёров: звёзды." + }, + "pick_up_point_coinvestment": { + "type": "number", + "format": "double", + "description": "Выплаты по механикам лояльности партнёров: АПВЗ." + }, + "total": { + "type": "number", + "format": "double", + "description": "Итого к начислению." + } + }, + "description": "Комиссия за доставку.", + "type": "object", + "title": "object" + }, + "RowItem": { + "properties": { + "barcode": { + "type": "string", + "description": "Штрихкод товара." + }, + "name": { + "type": "string", + "description": "Наименование товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "type": "object", + "title": "object", + "description": "Информация о товаре." + }, + "RowItemCommissionReturn": { + "properties": { + "amount": { + "type": "number", + "format": "double", + "description": "Сумма." + }, + "bonus": { + "type": "number", + "format": "double", + "description": "Баллы за скидки." + }, + "commission": { + "type": "number", + "format": "double", + "description": "Итого комиссия с учётом скидок и наценки." + }, + "compensation": { + "type": "number", + "format": "double", + "description": "Доплата за счёт Ozon." + }, + "price_per_instance": { + "type": "number", + "format": "double", + "description": "Цена за экземпляр." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + }, + "standard_fee": { + "type": "number", + "format": "double", + "description": "Базовое вознаграждение Ozon." + }, + "bank_coinvestment": { + "type": "number", + "format": "double", + "description": "Выплаты по механикам лояльности партнёров: зелёные цены." + }, + "stars": { + "type": "number", + "format": "double", + "description": "Выплаты по механикам лояльности партнёров: звёзды." + }, + "pick_up_point_coinvestment": { + "type": "number", + "format": "double", + "description": "Выплаты по механикам лояльности партнёров: АПВЗ." + }, + "total": { + "type": "number", + "format": "double", + "description": "Итого к начислению." + } + }, + "description": "Комиссия за возврат товара.", + "type": "object", + "title": "object" + }, + "GetRealizationReportResponseV2Row": { + "type": "object", + "title": "object", + "properties": { + "commission_ratio": { + "type": "number", + "format": "double", + "description": "Доля комиссии за продажу по категории." + }, + "delivery_commission": { + "$ref": "#/components/schemas/RowItemCommission" + }, + "item": { + "$ref": "#/components/schemas/RowItem" + }, + "return_commission": { + "$ref": "#/components/schemas/RowItemCommissionReturn" + }, + "rowNumber": { + "type": "integer", + "format": "int32", + "description": "Номер строки в отчёте." + }, + "seller_price_per_instance": { + "type": "number", + "format": "double", + "description": "Цена продавца с учётом скидки." + } + } + }, + "GetRealizationReportResponseV2Result": { + "properties": { + "header": { + "$ref": "#/components/schemas/GetRealizationReportResponseV2Header" + }, + "rows": { + "description": "Таблица отчёта.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetRealizationReportResponseV2Row" + } + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "v2GetRealizationReportResponseV2": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/GetRealizationReportResponseV2Result" + } + } + }, + "v1GetRealizationReportPostingRequest": { + "required": [ + "month", + "year" + ], + "type": "object", + "properties": { + "month": { + "description": "Месяц.", + "type": "integer", + "format": "int32" + }, + "year": { + "description": "Год.", + "type": "integer", + "format": "int32" + } + } + }, + "RowItemOrder": { + "type": "object", + "title": "object", + "description": "Информация о заказе.", + "properties": { + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "created_date": { + "type": "string", + "description": "Дата заказа в формате «ГГГГ-ММ-ДД»." + } + } + }, + "RowItemLegalEntityDocument": { + "type": "object", + "title": "object", + "description": "Информация о продаже юридическому лицу.", + "properties": { + "number": { + "type": "string", + "description": "Номер счёта-фактуры." + }, + "sale_date": { + "type": "string", + "description": "Дата в формате «ГГГГ-ММ-ДД»." + } + } + }, + "v1GetRealizationReportPostingResponseRow": { + "type": "object", + "title": "object", + "properties": { + "commission_ratio": { + "type": "number", + "format": "double", + "description": "Доля комиссии за продажу по категории." + }, + "delivery_commission": { + "$ref": "#/components/schemas/RowItemCommission" + }, + "item": { + "$ref": "#/components/schemas/RowItem" + }, + "return_commission": { + "$ref": "#/components/schemas/RowItemCommissionReturn" + }, + "row_number": { + "type": "integer", + "format": "int32", + "description": "Номер строки в отчёте." + }, + "seller_price_per_instance": { + "type": "number", + "format": "double", + "description": "Цена продавца с учётом скидки." + }, + "order": { + "$ref": "#/components/schemas/RowItemOrder" + }, + "legal_entity_document": { + "$ref": "#/components/schemas/RowItemLegalEntityDocument" + } + } + }, + "v1GetRealizationReportPostingResponse": { + "type": "object", + "title": "object", + "description": "Результат запроса.", + "properties": { + "header": { + "$ref": "#/components/schemas/GetRealizationReportResponseV2Header" + }, + "rows": { + "description": "Таблица отчёта.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GetRealizationReportPostingResponseRow" + } + } + } + }, + "FilterPeriod": { + "properties": { + "from": { + "format": "date-time", + "type": "string", + "description": "Начало периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.
\nПример: `2019-11-25T10:43:06.51`.\n" + }, + "to": { + "format": "date-time", + "type": "string", + "description": "Конец периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.
\nПример: `2019-11-25T10:43:06.51`.\n" + } + }, + "type": "object", + "title": "object", + "description": "Фильтр по дате." + }, + "FinanceTransactionListV3RequestFilter": { + "oneOf": [ + { + "title": "posting_number", + "required": [ + "posting_number" + ] + }, + { + "title": "date", + "required": [ + "date" + ] + } + ], + "properties": { + "date": { + "$ref": "#/components/schemas/FilterPeriod" + }, + "operation_type": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Тип операции:\n - `ClientReturnAgentOperation` — получение возврата, отмены, невыкупа от покупателя;\n - `MarketplaceMarketingActionCostOperation` — услуги продвижения товаров;\n - `MarketplaceSaleReviewsOperation` — приобретение отзывов на платформе;\n - `MarketplaceSellerCompensationOperation` — прочие компенсации;\n - `OperationAgentDeliveredToCustomer` — доставка покупателю;\n - `OperationAgentDeliveredToCustomerCanceled` — доставка покупателю — исправленное начисление;\n - `OperationAgentStornoDeliveredToCustomer` — доставка покупателю — отмена начисления;\n - `OperationClaim` — начисление по претензии;\n - `OperationCorrectionSeller` — инвентаризация взаиморасчетов;\n - `OperationDefectiveWriteOff` — компенсация за повреждённый на складе товар;\n - `OperationItemReturn` — доставка и обработка возврата, отмены, невыкупа;\n - `OperationLackWriteOff` — компенсация за утерянный на складе товар;\n - `OperationMarketplaceCrossDockServiceWriteOff` — доставка товаров на склад Ozon (кросс-докинг);\n - `OperationMarketplaceServiceStorage` — услуга размещения товаров на складе;\n - `OperationSetOff` — взаимозачёт с другими договорами контрагента;\n - `MarketplaceSellerReexposureDeliveryReturnOperation` — перечисление за доставку от покупателя;\n - `OperationReturnGoodsFBSofRMS` — доставка и обработка возврата, отмены, невыкупа;\n - `ReturnAgentOperationRFBS` — возврат перечисления за доставку покупателю;\n - `ItemAgentServiceStarsMembership` — вознаграждение за услугу [«Звёздные товары»](https://s.ozon.ru/e7NlR6b);\n - `MarketplaceSellerShippingCompensationReturnOperation` — компенсация перечисления за доставку;\n - `OperationMarketplaceServicePremiumCashback` — услуга продвижения Premium;\n - `MarketplaceServicePremiumPromotion` — услуга продвижения Premium, фиксированная комиссия;\n - `MarketplaceRedistributionOfAcquiringOperation` — оплата эквайринга;\n - `MarketplaceReturnStorageServiceAtThePickupPointFbsItem` — краткосрочное размещение возврата FBS;\n - `MarketplaceReturnStorageServiceInTheWarehouseFbsItem` — долгосрочное размещение возврата FBS;\n - `MarketplaceServiceItemDeliveryKGT` — доставка КГТ;\n - `MarketplaceServiceItemDirectFlowLogistic` — логистика;\n - `MarketplaceServiceItemReturnFlowLogistic` — обратная логистика;\n - `MarketplaceServicePremiumCashbackIndividualPoints` — услуга продвижения «Бонусы продавца»;\n - `OperationMarketplaceWithHoldingForUndeliverableGoods` — удержание за недовложение товара;\n - `MarketplaceServiceItemDirectFlowLogisticVDC` — логистика вРЦ;\n - `MarketplaceServiceItemDropoffPPZ` — услуга drop-off в пункте приёма заказов;\n - `MarketplaceServicePremiumCashback` — услуга продвижения Premium;\n - `MarketplaceServiceItemRedistributionReturnsPVZ` — перевыставление возвратов на пункте выдачи;\n - `OperationElectronicServiceStencil` — услуга «Трафареты»;\n - `OperationElectronicServicesPromotionInSearch` — услуга «Продвижение в поиске»;\n - `OperationMarketplaceServiceItemElectronicServicesBrandShelf` — услуга «Брендовая полка»;\n - `OperationSubscriptionPremium` — подписка Premium.\n" + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "transaction_type": { + "type": "string", + "description": "Тип начисления:\n - `all` — все,\n - `orders` — заказы,\n - `returns` — возвраты и отмены,\n - `services` — сервисные сборы,\n - `compensation` — компенсация,\n - `transferDelivery` — стоимость доставки,\n - `other` — прочее.\n\nНекоторые операции могут быть разделены во времени. Например, при приёме возврата от покупателя списывается стоимость товара и возвращается комиссия, а когда товар возвращается на склад, взимается стоимость услуга по обработке возврата.\n" + } + }, + "type": "object", + "title": "object", + "description": "Фильтр." + }, + "financev3FinanceTransactionListV3Request": { + "required": [ + "page", + "page_size" + ], + "properties": { + "filter": { + "$ref": "#/components/schemas/FinanceTransactionListV3RequestFilter" + }, + "page": { + "format": "int64", + "type": "integer", + "description": "Номер страницы, возвращаемой в запросе." + }, + "page_size": { + "format": "int64", + "type": "integer", + "description": "Количество элементов на странице." + } + }, + "type": "object", + "title": "object" + }, + "OperationItem": { + "properties": { + "name": { + "type": "string", + "description": "Название товара." + }, + "sku": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "type": "object", + "title": "object" + }, + "OperationPosting": { + "properties": { + "delivery_schema": { + "type": "string", + "description": "Схема доставки:\n - `FBO` — доставка со склада Ozon,\n - `FBS` — доставка со своего склада,\n - `CROSSBORDER` — доставка из-за рубежа,\n - `RFBS` — доставка по выбору продавца,\n - `FBP` — доставка с партнёрских складов Ozon,\n - `FBOECONOMY` — доставка эконом-товаров со склада Ozon,\n - `FBSECONOMY` — доставка эконом-товаров со своего склада.\n" + }, + "order_date": { + "type": "string", + "description": "Дата принятия отправления в обработку." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "warehouse_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор склада." + } + }, + "type": "object", + "title": "object", + "description": "Информация об отправлении." + }, + "OperationService": { + "properties": { + "name": { + "type": "string", + "description": "Название услуги:\n - `MarketplaceNotDeliveredCostItem` — возврат невостребованного товара от покупателя на склад.\n - `MarketplaceReturnAfterDeliveryCostItem` — возврат от покупателя на склад после доставки.\n - `MarketplaceDeliveryCostItem` — доставка товара до покупателя.\n - `MarketplaceSaleReviewsItem` — приобретение отзывов на платформе.\n - `ItemAdvertisementForSupplierLogistic` — доставка товаров на склад Ozon — кросс-докинг.\n - `OperationMarketplaceServiceStorage` — размещения товаров.\n - `MarketplaceMarketingActionCostItem` — продвижение товаров.\n - `MarketplaceServiceItemInstallment` — продвижениe и продажа в рассрочку.\n - `MarketplaceServiceItemMarkingItems` — обязательная маркировка товаров.\n - `MarketplaceServiceItemFlexiblePaymentSchedule` — гибкий график выплат.\n - `MarketplaceServiceItemReturnFromStock` — комплектация товаров для вывоза продавцом.\n - `ItemAdvertisementForSupplierLogisticSeller` — транспортно-экспедиционные услуги.\n - `ItemAgentServiceStarsMembership` — вознаграждение за услугу [«Звёздные товары»](https://s.ozon.ru/e7NlR6b).\n - `MarketplaceServiceItemDelivToCustomer` — последняя миля.\n - `MarketplaceServiceItemDirectFlowTrans` — магистраль.\n - `MarketplaceServiceItemDropoffFF` — обработка отправления.\n - `MarketplaceServiceItemDropoffPVZ` — обработка отправления.\n - `MarketplaceServiceItemDropoffSC` — обработка отправления.\n - `MarketplaceServiceItemFulfillment` — сборка заказа.\n - `MarketplaceServiceItemPickup` — выезд транспортного средства по адресу продавца для забора отправлений — Pick-up.\n - `MarketplaceServiceItemReturnAfterDelivToCustomer` — обработка возврата.\n - `MarketplaceServiceItemReturnFlowTrans` — обратная магистраль.\n - `MarketplaceServiceItemReturnNotDelivToCustomer` — обработка отмен.\n - `MarketplaceServiceItemReturnPartGoodsCustomer` — обработка невыкупа.\n - `MarketplaceRedistributionOfAcquiringOperation` — оплата эквайринга.\n - `MarketplaceReturnStorageServiceAtThePickupPointFbsItem` — краткосрочное размещение возврата FBS.\n - `MarketplaceReturnStorageServiceInTheWarehouseFbsItem` — долгосрочное размещение возврата FBS.\n - `MarketplaceServiceItemDeliveryKGT` — доставка крупногабаритного товара (КГТ).\n - `MarketplaceServiceItemDirectFlowLogistic` — логистика.\n - `MarketplaceServiceItemReturnFlowLogistic` — обратная логистика.\n - `MarketplaceServicePremiumCashbackIndividualPoints` — услуга продвижения «Бонусы продавца».\n - `MarketplaceServicePremiumPromotion` — услуга продвижение Premium, фиксированная комиссия.\n - `OperationMarketplaceWithHoldingForUndeliverableGoods` — удержание за недовложение товара.\n - `MarketplaceServiceItemDropoffPPZ` — услуга drop-off в пункте приёма заказов.\n - `MarketplaceServiceItemRedistributionReturnsPVZ` — перевыставление возвратов на ПВЗ.\n - `OperationMarketplaceAgencyFeeAggregator3PLGlobal` — тарификация агентской услуги Agregator 3PL Global.\n - `MarketplaceServiceItemDirectFlowLogisticVDC` — логистика вРЦ.\n" + }, + "price": { + "format": "double", + "type": "number", + "description": "Цена." + } + }, + "type": "object", + "title": "object" + }, + "FinanceTransactionListV3ResponseOperation": { + "properties": { + "accruals_for_sale": { + "format": "double", + "type": "number", + "description": "Стоимость товаров с учётом скидок продавца." + }, + "amount": { + "format": "double", + "type": "number", + "description": "Итоговая сумма операции." + }, + "delivery_charge": { + "format": "double", + "type": "number", + "description": "Стоимость доставки для начислений по тарифам, которые действовали до 1 февраля 2021 года, а также начислений для крупногабаритных товаров." + }, + "items": { + "items": { + "$ref": "#/components/schemas/OperationItem" + }, + "type": "array", + "description": "Информация о товаре." + }, + "operation_date": { + "type": "string", + "description": "Дата операции." + }, + "operation_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор операции." + }, + "operation_type": { + "type": "string", + "description": "Тип операции." + }, + "operation_type_name": { + "type": "string", + "description": "Название типа операции." + }, + "posting": { + "$ref": "#/components/schemas/OperationPosting" + }, + "return_delivery_charge": { + "format": "double", + "type": "number", + "description": "Плата за возвраты и отмены для начислений по тарифам, которые действовали до 1 февраля 2021 года, а также начислений для крупногабаритных товаров." + }, + "sale_commission": { + "format": "double", + "type": "number", + "description": "Комиссия за продажу или возврат комиссии за продажу." + }, + "services": { + "items": { + "$ref": "#/components/schemas/OperationService" + }, + "type": "array", + "description": "Название услуги." + }, + "type": { + "type": "string", + "description": "Тип начисления:\n- `all` — все,\n- `orders` — заказы,\n- `returns` — возвраты и отмены,\n- `services` — сервисные сборы,\n- `compensation` — компенсация,\n- `transferDelivery` — стоимость доставки,\n- `other` — прочее.\n" + } + }, + "type": "object", + "title": "object" + }, + "financev3FinanceTransactionListV3ResponseResult": { + "properties": { + "operations": { + "items": { + "$ref": "#/components/schemas/FinanceTransactionListV3ResponseOperation" + }, + "type": "array", + "description": "Информация об операциях." + }, + "page_count": { + "format": "int64", + "type": "integer", + "description": "Количество страниц. Если 0, страниц больше нет." + }, + "row_count": { + "format": "int64", + "type": "integer", + "description": "Количество транзакций на всех страницах. Если 0, транзакций больше нет." + } + }, + "type": "object", + "title": "object", + "description": "Результаты запроса." + }, + "financev3FinanceTransactionListV3Response": { + "properties": { + "result": { + "$ref": "#/components/schemas/financev3FinanceTransactionListV3ResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "FinanceTransactionTotalsV3RequestDate": { + "properties": { + "from": { + "format": "date-time", + "type": "string", + "description": "Начало периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.
\nПример: `2019-11-25T10:43:06.51`.\n" + }, + "to": { + "format": "date-time", + "type": "string", + "description": "Конец периода.\n\nФормат: `YYYY-MM-DDTHH:mm:ss.sssZ`.
\nПример: `2019-11-25T10:43:06.51`.\n" + } + }, + "type": "object", + "title": "object", + "description": "Фильтр по дате." + }, + "financev3FinanceTransactionTotalsV3Request": { + "oneOf": [ + { + "title": "posting_number", + "required": [ + "posting_number" + ] + }, + { + "title": "date", + "required": [ + "date" + ] + } + ], + "properties": { + "date": { + "$ref": "#/components/schemas/FinanceTransactionTotalsV3RequestDate" + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "transaction_type": { + "type": "string", + "description": "Тип операции:\n - `all` — все,\n - `orders` — заказы,\n - `returns` — возвраты и отмены,\n - `services` — сервисные сборы,\n - `compensation` — компенсация,\n - `transferDelivery` — стоимость доставки,\n - `other` — прочее.\n" + } + }, + "type": "object", + "title": "object" + }, + "financev3FinanceTransactionTotalsV3ResponseResult": { + "properties": { + "accruals_for_sale": { + "format": "double", + "type": "number", + "description": "Общая стоимость товаров и возвратов в заданный период." + }, + "compensation_amount": { + "format": "double", + "type": "number", + "description": "Компенсации." + }, + "money_transfer": { + "format": "double", + "type": "number", + "description": "Начисления за доставку и возвраты при работе по схеме «Доставка по выбору продавца»." + }, + "others_amount": { + "format": "double", + "type": "number", + "description": "Прочие начисления." + }, + "processing_and_delivery": { + "format": "double", + "type": "number", + "description": "Стоимость услуг обработки отправлений, сборки заказов, магистрали и последней мили, а также доставки до введения новых комиссий и тарифов с 1 февраля 2021 года.\n\nМагистраль — доставка товаров между кластерами.\n\nПоследняя миля — доставка товаров покупателю в пункт выдачи заказов, постамат или курьером.\n" + }, + "refunds_and_cancellations": { + "format": "double", + "type": "number", + "description": "Стоимость обратной магистрали, обработки возвратов, отмен и невыкупа товара, а также возвратов до введения новых комиссий и тарифов с 1 февраля 2021 года.\n\nМагистраль — доставка товаров между кластерами.\n\nПоследняя миля — доставка товаров покупателю в пункт выдачи заказов, постамат или курьером.\n" + }, + "sale_commission": { + "format": "double", + "type": "number", + "description": "Сумма комиссии, которая была удержана при продаже товара и возвращена при его возврате." + }, + "services_amount": { + "format": "double", + "type": "number", + "description": "Стоимость дополнительных услуг, не связанных напрямую с доставками и возвратами товаров. Например, продвижения или размещения товаров." + } + }, + "type": "object", + "title": "object", + "description": "Результаты запроса." + }, + "financev3FinanceTransactionTotalsV3Response": { + "properties": { + "result": { + "$ref": "#/components/schemas/financev3FinanceTransactionTotalsV3ResponseResult" + } + }, + "type": "object", + "title": "object" + }, + "commonLanguage": { + "default": "DEFAULT", + "enum": null, + "title": "Language", + "type": "string", + "description": "Язык ответа:\n - `RU` — русский,\n - `EN` — английский.\n" + }, + "v1CreateDocumentB2BSalesReportRequest": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Отчётный период в формате `YYYY-MM`." + }, + "language": { + "$ref": "#/components/schemas/commonLanguage" + } + } + }, + "v1CreateDocumentB2BSalesJSONReportRequest": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Отчётный период в формате `YYYY-MM`. Отчёт доступен до января 2019 включительно." + } + } + }, + "CreateDocumentB2BSalesJSONReportResponseBuyer": { + "type": "object", + "description": "Информация о покупателе.", + "properties": { + "name": { + "type": "string", + "description": "Название компании." + }, + "address": { + "type": "string", + "description": "Юридический адрес." + }, + "inn": { + "type": "string", + "description": "ИНН." + }, + "kpp": { + "type": "string", + "description": "КПП." + } + } + }, + "CreateDocumentB2BSalesJSONReportResponseInvoiceInfoType": { + "type": "string", + "enum": [ + "UPD", + "UKD" + ], + "description": "Тип документа:\n- `UPD` - УПД;\n- `UKD` - УКД.\n" + }, + "CreateDocumentB2BSalesJSONReportResponseInvoiceInfo": { + "type": "object", + "description": "Информация о счёте-фактуре.", + "properties": { + "date": { + "type": "string", + "description": "Дата счёта-фактуры продавца в формате `YYYY-MM-DD`." + }, + "number": { + "type": "string", + "description": "Номер счёта-фактуры продавца." + }, + "status": { + "type": "string", + "description": "Статус УКД или УПД." + }, + "type": { + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseInvoiceInfoType" + } + } + }, + "CreateDocumentB2BSalesJSONReportResponseLegalSaleOperationType": { + "type": "string", + "enum": [ + "DELIVERY", + "RETURN" + ], + "description": "Тип операции:\n- `DELIVERY` — отправление,\n- `RETURN` — возврат.\n" + }, + "CreateDocumentB2BSalesJSONReportResponseLegalSaleOperation": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "double", + "description": "Сумма реализации или возврата." + }, + "cost_without_vat": { + "type": "number", + "format": "double", + "description": "Стоимость товара без НДС." + }, + "date": { + "type": "string", + "description": "Дата операции в формате `YYYY-MM-DD`." + }, + "gtd_number": { + "type": "string", + "description": "Номер ГТД." + }, + "origin_country": { + "type": "string", + "description": "Страна происхождения товара." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "price": { + "type": "number", + "format": "double", + "description": "Цена реализации или возврата в рублях." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товаров." + }, + "rnpt_number": { + "type": "string", + "description": "РНПТ." + }, + "type": { + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseLegalSaleOperationType" + }, + "vat_amount": { + "type": "number", + "format": "double", + "description": "Сумма НДС, которая взимается с покупателя." + }, + "vat_rate": { + "type": "number", + "format": "double", + "description": "Ставка НДС." + } + } + }, + "CreateDocumentB2BSalesJSONReportResponseLegalSaleInvoice": { + "type": "object", + "properties": { + "buyer_info": { + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseBuyer" + }, + "currency": { + "type": "string", + "description": "Валюта." + }, + "currency_code": { + "type": "integer", + "format": "int32", + "description": "Код валюты." + }, + "info": { + "description": "Информация о счёте-фактуре.", + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseInvoiceInfo" + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "operations": { + "type": "array", + "description": "Список операций.", + "items": { + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseLegalSaleOperation" + } + }, + "product_name": { + "type": "string", + "description": "Название товара." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "unit_code": { + "type": "integer", + "format": "int32", + "description": "Код условного обозначения." + }, + "unit_name": { + "type": "string", + "description": "Условное обозначение." + } + } + }, + "CreateDocumentB2BSalesJSONReportResponseSellerInfo": { + "type": "object", + "description": "Информация о продавце.", + "properties": { + "company_name": { + "type": "string", + "description": "Название компании." + }, + "inn": { + "type": "string", + "description": "ИНН." + }, + "kpp": { + "type": "string", + "description": "КПП." + } + } + }, + "v1CreateDocumentB2BSalesJSONReportResponse": { + "type": "object", + "properties": { + "date_from": { + "type": "string", + "description": "Дата начала отчётного периода в формате `YYYY-MM-DD`." + }, + "date_to": { + "type": "string", + "description": "Дата окончания отчётного периода в формате `YYYY-MM-DD`." + }, + "invoices": { + "type": "array", + "description": "Список счетов-фактур.", + "items": { + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseLegalSaleInvoice" + } + }, + "seller_info": { + "$ref": "#/components/schemas/CreateDocumentB2BSalesJSONReportResponseSellerInfo" + } + } + }, + "v1CreateMutualSettlementReportRequest": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Отчётный период в формате `YYYY-MM`." + }, + "language": { + "$ref": "#/components/schemas/commonLanguage" + } + } + }, + "v1GetRealizationReportByDayRequest": { + "required": [ + "day", + "month", + "year" + ], + "type": "object", + "properties": { + "day": { + "description": "День.", + "type": "integer", + "format": "int32" + }, + "month": { + "description": "Месяц.", + "type": "integer", + "format": "int32" + }, + "year": { + "description": "Год.", + "type": "integer", + "format": "int32" + } + } + }, + "GetRealizationReportByDayResponseRow": { + "type": "object", + "title": "object", + "properties": { + "commission_ratio": { + "type": "number", + "format": "double", + "description": "Доля комиссии за продажу по категории." + }, + "delivery_commission": { + "$ref": "#/components/schemas/RowItemCommission" + }, + "item": { + "$ref": "#/components/schemas/RowItem" + }, + "return_commission": { + "$ref": "#/components/schemas/RowItemCommissionReturn" + }, + "rowNumber": { + "type": "integer", + "format": "int32", + "description": "Номер строки в отчёте." + }, + "seller_price_per_instance": { + "type": "number", + "format": "double", + "description": "Цена продавца с учётом скидки." + } + } + }, + "GetRealizationReportByDayResponse": { + "properties": { + "rows": { + "description": "Таблица отчёта.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetRealizationReportByDayResponseRow" + } + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "v1GetFinanceProductsBuyoutRequest": { + "type": "object", + "required": [ + "date_from", + "date_to" + ], + "properties": { + "date_from": { + "description": "Дата, с которой будут данные в отчёте.", + "type": "string" + }, + "date_to": { + "description": "Дата, по которую будут данные в отчёте.\n\nМаксимальный период — 31 день.\n", + "type": "string" + } + } + }, + "GetFinanceProductsBuyoutResponseProduct": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "float", + "description": "Сумма к начислению." + }, + "buyout_price": { + "type": "number", + "format": "float", + "description": "Цена выкупа товара с НДС." + }, + "deduction_by_category_percent": { + "type": "number", + "format": "float", + "description": "Скидка по категории в процентах." + }, + "name": { + "description": "Название товара.", + "type": "string" + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Количество товара." + }, + "seller_price_per_instance": { + "type": "number", + "format": "float", + "description": "Цена продавца с учётом скидки." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "vat_percent": { + "type": "integer", + "format": "int32", + "description": "Ставка НДС для товара в процентах." + } + } + }, + "v1GetFinanceProductsBuyoutResponse": { + "type": "object", + "properties": { + "products": { + "description": "Список выкупленных товаров", + "type": "array", + "items": { + "$ref": "#/components/schemas/GetFinanceProductsBuyoutResponseProduct" + } + } + } + }, + "compensationReportLanguage": { + "default": "RU", + "enum": null, + "title": "Language", + "type": "string", + "description": "Язык отчёта:\n - `RU` — русский,\n - `EN` — английский.\n" + }, + "v1GetCompensationReportRequest": { + "required": [ + "date" + ], + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Отчётный период в формате `YYYY-MM`." + }, + "language": { + "$ref": "#/components/schemas/compensationReportLanguage" + } + } + }, + "CreateReportResponseCodeNoDeadline": { + "properties": { + "code": { + "type": "string", + "description": "Уникальный идентификатор отчёта. Чтобы получить отчёт, передайте это значение в метод [/v1/report/info](#operation/ReportAPI_ReportInfo)." + } + }, + "type": "object", + "title": "object", + "description": "Результат запроса." + }, + "CreateReportResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/CreateReportResponseCodeNoDeadline" + } + } + }, + "v1GetDecompensationReportRequest": { + "required": [ + "date" + ], + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Отчётный период в формате `YYYY-MM`." + }, + "language": { + "$ref": "#/components/schemas/compensationReportLanguage" + } + } + }, + "RatingItemChange": { + "type": "object", + "title": "object", + "description": "Изменение рейтинга: отношение предыдущего значения к текущему.\n", + "properties": { + "direction": { + "description": "Как изменилось значение рейтинга:\n- `DIRECTION_UNKNOWN` — не определено.\n- `DIRECTION_NONE` — не изменилось.\n- `DIRECTION_RISE` — выросло.\n- `DIRECTION_FALL` — упало.\n", + "type": "string" + }, + "meaning": { + "description": "Что означает изменение:\n- `MEANING_UNKNOWN` — неизвестно.\n- `MEANING_NONE` — нейтрально.\n- `MEANING_GOOD` — показатель улучшается, всё хорошо.\n- `MEANING_BAD` — показатель падает, нужно что-то сделать.\n", + "type": "string" + } + } + }, + "v1RatingItem": { + "type": "object", + "title": "object", + "properties": { + "change": { + "$ref": "#/components/schemas/RatingItemChange" + }, + "current_value": { + "description": "Текущее значение рейтинга.", + "type": "number", + "format": "double" + }, + "name": { + "description": "Название рейтинга.", + "type": "string" + }, + "past_value": { + "description": "Предыдущее значение рейтинга.", + "type": "number", + "format": "double" + }, + "rating": { + "description": "Название рейтинга в системе.", + "type": "string" + }, + "rating_direction": { + "description": "Каким должно быть значение рейтинга, чтобы оно считалось хорошим:\n- `UNKNOWN_DIRECTION` — не определено.\n- `NEUTRAL` — неважно.\n- `HIGHER_IS_BETTER` — чем выше, тем лучше.\n- `LOWER_IS_BETTER` — чем ниже, тем лучше.\n", + "type": "string" + }, + "status": { + "description": "Статус рейтинга:\n- `UNKNOWN_STATUS` — не определён.\n- `OK` — все хорошо.\n- `WARNING` — показатели требуют внимания.\n- `CRITICAL` — критичный рейтинг.\n", + "type": "string" + }, + "value_type": { + "description": "Тип значения:\n- `UNKNOWN_VALUE` — не определён.\n- `INDEX` — индекс.\n- `PERCENT` — процент.\n- `TIME` — время.\n- `RATIO` — коэффициент.\n- `REVIEW_SCORE` — оценка.\n- `COUNT` — счёт.\n", + "type": "string" + } + } + }, + "RatingSummaryV1ResponseGroup": { + "type": "object", + "title": "object", + "properties": { + "group_name": { + "description": "Название группы рейтингов.", + "type": "string" + }, + "items": { + "description": "Список рейтингов.", + "items": { + "$ref": "#/components/schemas/v1RatingItem" + } + } + } + }, + "RatingSummaryV1ResponseLocalIndex": { + "type": "object", + "properties": { + "calculation_date": { + "description": "Дата расчёта индекса локализации.", + "format": "date-time", + "type": "string" + }, + "localization_percentage": { + "description": "Значение индекса локализации.", + "type": "integer", + "format": "int32" + } + } + }, + "v1RatingSummaryV1Response": { + "type": "object", + "title": "object", + "properties": { + "groups": { + "description": "Список с группами рейтингов.", + "items": { + "$ref": "#/components/schemas/RatingSummaryV1ResponseGroup" + } + }, + "localization_index": { + "description": "Данные по индексу локализации. Если за последние 14 дней у вас не было продаж, поля параметра будут пустыми.", + "items": { + "$ref": "#/components/schemas/RatingSummaryV1ResponseLocalIndex" + } + }, + "penalty_score_exceeded": { + "description": "Признак, что баланс штрафных баллов превышен.", + "type": "boolean" + }, + "premium": { + "description": "Признак наличия подписки [Premium](https://seller-edu.ozon.ru/seller-rating/about-rating/premium-program).", + "type": "boolean" + }, + "premium_plus": { + "description": "Признак наличия подписки [Premium Plus](https://seller-edu.ozon.ru/seller-rating/about-rating/subscription-premium-plus).", + "type": "boolean" + } + } + }, + "v1RatingHistoryV1Request": { + "type": "object", + "title": "object", + "properties": { + "date_from": { + "description": "Начало периода.", + "type": "string", + "format": "date-time" + }, + "date_to": { + "description": "Конец периода.", + "type": "string", + "format": "date-time" + }, + "ratings": { + "description": "Фильтр по рейтингу.\n\nРейтинги, по которым нужно получить значение за период:\n\n- `rating_on_time` — процент заказов, выполненных вовремя за последние 30 дней.\n- `rating_review_avg_score_total` — средняя оценка всех товаров.\n- `rating_price` — индекс цен: отношение стоимости ваших товаров к самой низкой цене на такой же товар на других площадках.\n- `rating_order_cancellation` — процент отмен FBS-отправлений по вашей вине за последние 7 дней. Текущий и предыдущий день не учитываются.\n- `rating_shipment_delay` — процент FBS-отправлений, которые за последние 7 дней не были переданы в доставку по вашей вине. Текущий и предыдущий день не учитываются.\n- `rating_ssl` — оценка работы по FBO. Учитывает `rating_on_time_supply_delivery`, `rating_on_time_supply_cancellation` и `rating_order_accuracy`.\n- `rating_on_time_supply_delivery` — процент поставок, которые вы привезли на склад в выбранный временной интервал за последние 60 дней.\n- `rating_order_accuracy` — процент поставок без излишков, недостач, пересорта и брака за последние 60 дней.\n- `rating_on_time_supply_cancellation` — процент заявок на поставку, которые завершились или были отменены без опоздания за последние 60 дней.\n- `rating_reaction_time` — время, в течение которого покупатели в среднем ждали ответа на своё первое сообщение в чате за последние 30 дней.\n- `rating_average_response_time` — время, в течение которого покупатели в среднем ждали вашего ответа за последние 30 дней.\n- `rating_replied_dialogs_ratio` — доля диалогов хотя бы с одним вашим ответом в течение 24 часов за последние 30 дней.\n\nЕсли вы хотите получить информацию по начисленным штрафным баллам для рейтингов `rating_on_time` и `rating_review_avg_score_total`,\nпередайте значения нужных рейтингов в этом параметре и `with_premium_scores=true`.\n", + "items": { + "type": "string" + } + }, + "with_premium_scores": { + "description": "Признак, что в ответе нужно вернуть информацию о штрафных баллах в Premium-программе.", + "type": "boolean" + } + }, + "required": [ + "ratings", + "date_from", + "date_to" + ] + }, + "PremiumScoresScore": { + "type": "object", + "title": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time", + "description": "Дата, когда были начислены штрафные баллы." + }, + "rating_value": { + "type": "number", + "format": "double", + "description": "Значение рейтинга, за которое были начислены штрафные баллы." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Количество начисленных штрафных баллов." + } + } + }, + "v1PremiumScores": { + "type": "object", + "title": "object", + "properties": { + "rating": { + "description": "Название рейтинга.", + "type": "string" + }, + "scores": { + "description": "Информация о штрафных баллах.", + "items": { + "$ref": "#/components/schemas/PremiumScoresScore" + } + } + } + }, + "v1RatingStatus": { + "type": "object", + "title": "object", + "description": "Статус рейтинга.", + "properties": { + "danger": { + "type": "boolean", + "description": "Признак, превышено ли пороговое значение рейтинга для блокировки." + }, + "premium": { + "type": "boolean", + "description": "Признак, достигнуто ли пороговое значение для участия в Premium-программе." + }, + "warning": { + "type": "boolean", + "description": "Признак наличия предупреждения о возможном превышении порогового значения для блокировки." + } + } + }, + "RatingValue": { + "type": "object", + "title": "object", + "properties": { + "date_from": { + "type": "string", + "format": "date-time", + "description": "Дата начала подсчёта рейтинга." + }, + "date_to": { + "type": "string", + "format": "date-time", + "description": "Дата конца подсчёта рейтинга." + }, + "status": { + "$ref": "#/components/schemas/v1RatingStatus" + }, + "value": { + "type": "number", + "format": "double", + "description": "Значение рейтинга." + } + } + }, + "v1Rating": { + "type": "object", + "title": "object", + "properties": { + "danger_threshold": { + "type": "number", + "format": "double", + "description": "Пороговое значение рейтинга, после которого продажи будут заблокированы." + }, + "premium_threshold": { + "type": "number", + "format": "double", + "description": "Пороговое значение рейтинга для участия в Premium-программе." + }, + "rating": { + "type": "string", + "description": "Системное название рейтинга." + }, + "values": { + "description": "Список значений рейтинга.", + "items": { + "$ref": "#/components/schemas/RatingValue" + } + }, + "warning_threshold": { + "type": "number", + "format": "double", + "description": "Пороговое значение рейтинга, после которого появится предупреждение о возможной блокировке." + } + } + }, + "v1RatingHistoryV1Response": { + "type": "object", + "title": "object", + "properties": { + "premium_scores": { + "description": "Информация о штрафных баллах в Premium-программе.", + "items": { + "$ref": "#/components/schemas/v1PremiumScores" + } + }, + "ratings": { + "description": "Информация о рейтингах продавца.", + "items": { + "$ref": "#/components/schemas/v1Rating" + } + } + } + }, + "v1AnalyticsManageStocksRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтр.", + "properties": { + "skus": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "description": "Идентификаторы товаров в системе Ozon — SKU." + }, + "stock_types": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "STOCK_TYPE_VALID", + "STOCK_TYPE_WAITING_DOCS", + "STOCK_TYPE_EXPIRING", + "STOCK_TYPE_DEFECT" + ] + }, + "description": "Тип оставшегося на складе товара:\n- `STOCK_TYPE_VALID` — валидный сток. Остаток товара, доступного для продажи. \n- `STOCK_TYPE_WAITING_DOCS` — превалидный сток. Остаток товара, который Ozon не может продавать, пока продавец не прислал в Ozon документы по обязательной маркировке. Товар перейдёт в валидный сток, когда документы будут подписаны.\n- `STOCK_TYPE_EXPIRING` — предпросрок. Остаток товара, который снят с полки, но срок годности формально не истёк. \n- `STOCK_TYPE_DEFECT` — брак. Остаток товара, который находится на складах Ozon, но повреждён.\n" + }, + "warehouse_ids": { + "type": "array", + "description": "Идентификаторы складов.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1AnalyticsManageStocksRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "type": "object", + "$ref": "#/components/schemas/v1AnalyticsManageStocksRequestFilter" + }, + "limit": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "description": "Количество значений в ответе.\n", + "required": true + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Количество элементов, которое будет пропущено в ответе.\n\nНапример, если `offset = 10`, ответ начнётся с 11-го найденного элемента.\n", + "required": true + } + } + }, + "v1AnalyticsManageStocksResponseItem": { + "type": "object", + "title": "object", + "properties": { + "defect_stock_count": { + "type": "integer", + "format": "int64", + "description": "Остаток дефектного товара, шт." + }, + "expiring_stock_count": { + "type": "integer", + "format": "int64", + "description": "Остаток товара с истекающим сроком годности, шт." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "valid_stock_count": { + "type": "integer", + "format": "int64", + "description": "Остаток товара, доступного для продажи." + }, + "waitingdocs_stock_count": { + "type": "integer", + "format": "int64", + "description": "Остаток товара, ожидающего документы." + }, + "warehouse_name": { + "type": "string", + "description": "Название склада." + } + } + }, + "v1AnalyticsManageStocksResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "description": "Товары.", + "items": { + "$ref": "#/components/schemas/v1AnalyticsManageStocksResponseItem" + } + } + } + }, + "v1AnalyticsStocksRequest": { + "type": "object", + "title": "object", + "required": [ + "skus" + ], + "properties": { + "cluster_ids": { + "description": "Фильтр по идентификаторам кластеров. Получить идентификаторы можно через метод [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList).", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "item_tags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ITEM_ATTRIBUTE_NONE", + "ECONOM", + "NOVEL", + "DISCOUNT", + "FBS_RETURN", + "SUPER" + ] + }, + "description": "Фильтр по тегам товара: \n- `ITEM_ATTRIBUTE_NONE` — без тега;\n- `ECONOM` — эконом-товар;\n- `NOVEL` — новинка;\n- `DISCOUNT` — уценённый товар;\n- `FBS_RETURN` — товар из возврата FBS;\n- `SUPER` — Super-товар.\n" + }, + "skus": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "maximum": 100, + "description": "Фильтр по идентификаторам товаров в системе Ozon — SKU." + }, + "turnover_grades": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "TURNOVER_GRADE_NONE", + "DEFICIT", + "POPULAR", + "ACTUAL", + "SURPLUS", + "NO_SALES", + "WAS_NO_SALES", + "RESTRICTED_NO_SALES", + "COLLECTING_DATA", + "WAITING_FOR_SUPPLY", + "WAS_DEFICIT", + "WAS_POPULAR", + "WAS_ACTUAL", + "WAS_SURPLUS" + ] + }, + "description": "Фильтр по статусу ликвидности товаров: \n- `TURNOVER_GRADE_NONE` — нет статуса ликвидности. \n- `DEFICIT` — дефицитный. Остатков товара хватит до 28 дней.\n- `POPULAR` — очень популярный. Остатков товара хватит на 28–56 дней.\n- `ACTUAL` — популярный. Остатков товара хватит на 56–120 дней.\n- `SURPLUS` — избыточный. Товар продаётся медленно, остатков хватит более чем на 120 дней.\n- `NO_SALES` — без продаж. У товара нет продаж последние 28 дней.\n- `WAS_NO_SALES` — был без продаж. У товара не было продаж и остатков последние 28 дней.\n- `RESTRICTED_NO_SALES` — без продаж, ограничен. У товара не было продаж более 120 дней. Такой товар [нельзя добавить в поставку](https://seller-edu.ozon.ru/fbo/rabota-so-stokom/nehodovye-tovary).\n- `COLLECTING_DATA` — сбор данных. Для расчёта ликвидности нового товара собираем данные в течение 60 дней после поставки.\n- `WAITING_FOR_SUPPLY` — ожидаем поставки. На складе нет остатков, доступных к продаже. Сделайте поставку для начала сбора данных.\n- `WAS_DEFICIT` — был дефицитным. Товар был дефицитным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_POPULAR` — был очень популярным. Товар был очень популярным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_ACTUAL` — был популярным. Товар был популярным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_SURPLUS` — был избыточным. Товар был избыточным последние 56 дней. Сейчас у него нет остатков.\n" + }, + "warehouse_ids": { + "description": "Фильтр по идентификаторам складов. Получить идентификаторы можно через метод [/v1/warehouse/list](#operation/WarehouseAPI_WarehouseList).", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1AnalyticsStocksResponseItem": { + "type": "object", + "title": "object", + "properties": { + "ads": { + "type": "number", + "format": "double", + "description": "Среднесуточное количество проданных единиц товара за последние 28 дней по всем кластерам." + }, + "ads_cluster": { + "type": "number", + "format": "double", + "description": "Среднесуточное количество проданных единиц товара за последние 28 дней в кластере." + }, + "available_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара, доступное к продаже." + }, + "cluster_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор кластера. Получить подробную информацию о кластере можно через метод [/v1/cluster/list](#operation/SupplyDraftAPI_DraftClusterList)." + }, + "cluster_name": { + "type": "string", + "description": "Название кластера." + }, + "days_without_sales": { + "type": "integer", + "format": "int32", + "description": "Количество дней без продаж по всем кластерам." + }, + "days_without_sales_cluster": { + "type": "integer", + "format": "int32", + "description": "Количество дней без продаж в кластере." + }, + "excess_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество излишков с поставки, которые доступны к вывозу." + }, + "expiring_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара с истекающим сроком годности." + }, + "idc": { + "type": "number", + "format": "double", + "description": "Количество дней, на которое хватит остатка товара с учётом среднесуточных продаж за 28 дней по всем кластерам." + }, + "idc_cluster": { + "type": "number", + "format": "double", + "description": "Количество дней, на которое хватит остатка товара с учётом среднесуточных продаж за 28 дней в кластере." + }, + "item_tags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ITEM_ATTRIBUTE_NONE", + "ECONOM", + "NOVEL", + "DISCOUNT", + "FBS_RETURN", + "SUPER" + ] + }, + "description": "Теги товара: \n- `ITEM_ATTRIBUTE_NONE` — без тега;\n- `ECONOM` — эконом-товар;\n- `NOVEL` — новинка;\n- `DISCOUNT` — уценённый товар;\n- `FBS_RETURN` — товар из возврата FBS;\n- `SUPER` — Super-товар.\n" + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "other_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара, проходящих проверку." + }, + "requested_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара в заявках на поставку." + }, + "return_from_customer_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара в процессе возврата от покупателей." + }, + "return_to_seller_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара, готовящихся к вывозу по вашей заявке." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "stock_defect_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество брака, доступное к вывозу со стока." + }, + "transit_defect_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество брака, доступное к вывозу с поставки." + }, + "transit_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество единиц товара в поставках в пути." + }, + "turnover_grade": { + "type": "string", + "enum": [ + "UNSPECIFIED", + "TURNOVER_GRADE_NONE", + "DEFICIT", + "POPULAR", + "ACTUAL", + "SURPLUS", + "NO_SALES", + "WAS_NO_SALES", + "RESTRICTED_NO_SALES", + "COLLECTING_DATA", + "WAITING_FOR_SUPPLY", + "WAS_DEFICIT", + "WAS_POPULAR", + "WAS_ACTUAL", + "WAS_SURPLUS" + ], + "description": "Статус ликвидности товара по всем кластерам: \n- `UNSPECIFIED` — значение не определено.\n- `TURNOVER_GRADE_NONE` — нет статуса ликвидности.\n- `DEFICIT` — дефицитный. Остатков товара хватит до 28 дней.\n- `POPULAR` — очень популярный. Остатков товара хватит на 28–56 дней.\n- `ACTUAL` — популярный. Остатков товара хватит на 56–120 дней.\n- `SURPLUS` — избыточный. Товар продаётся медленно, остатков хватит более чем на 120 дней.\n- `NO_SALES` — без продаж. У товара нет продаж последние 28 дней.\n- `WAS_NO_SALES` — был без продаж. У товара не было продаж и остатков последние 28 дней.\n- `RESTRICTED_NO_SALES` — без продаж, ограничен. У товара не было продаж более 120 дней. Такой товар [нельзя добавить в поставку](https://seller-edu.ozon.ru/fbo/rabota-so-stokom/nehodovye-tovary).\n- `COLLECTING_DATA` — сбор данных. Для расчёта ликвидности нового товара собираем данные в течение 60 дней после поставки.\n- `WAITING_FOR_SUPPLY` — ожидаем поставки. На складе нет остатков, доступных к продаже. Сделайте поставку для начала сбора данных.\n- `WAS_DEFICIT` — был дефицитным. Товар был дефицитным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_POPULAR` — был очень популярным. Товар был очень популярным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_ACTUAL` — был популярным. Товар был популярным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_SURPLUS` — был избыточным. Товар был избыточным последние 56 дней. Сейчас у него нет остатков.\n" + }, + "turnover_grade_cluster": { + "type": "string", + "enum": [ + "UNSPECIFIED", + "TURNOVER_GRADE_NONE", + "DEFICIT", + "POPULAR", + "ACTUAL", + "SURPLUS", + "NO_SALES", + "WAS_NO_SALES", + "RESTRICTED_NO_SALES", + "COLLECTING_DATA", + "WAITING_FOR_SUPPLY", + "WAS_DEFICIT", + "WAS_POPULAR", + "WAS_ACTUAL", + "WAS_SURPLUS" + ], + "description": "Статус ликвидности товара в кластере: \n- `UNSPECIFIED` — значение не определено.\n- `TURNOVER_GRADE_NONE` — нет статуса ликвидности.\n- `DEFICIT` — дефицитный. Остатков товара хватит до 28 дней.\n- `POPULAR` — очень популярный. Остатков товара хватит на 28–56 дней.\n- `ACTUAL` — популярный. Остатков товара хватит на 56–120 дней.\n- `SURPLUS` — избыточный. Товар продаётся медленно, остатков хватит более чем на 120 дней.\n- `NO_SALES` — без продаж. У товара нет продаж последние 28 дней.\n- `WAS_NO_SALES` — был без продаж. У товара не было продаж и остатков последние 28 дней.\n- `RESTRICTED_NO_SALES` — без продаж, ограничен. У товара не было продаж более 120 дней. Такой товар [нельзя добавить в поставку](https://seller-edu.ozon.ru/fbo/rabota-so-stokom/nehodovye-tovary).\n- `COLLECTING_DATA` — сбор данных. Для расчёта ликвидности нового товара собираем данные в течение 60 дней после поставки.\n- `WAITING_FOR_SUPPLY` — ожидаем поставки. На складе нет остатков, доступных к продаже. Сделайте поставку для начала сбора данных.\n- `WAS_DEFICIT` — был дефицитным. Товар был дефицитным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_POPULAR` — был очень популярным. Товар был очень популярным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_ACTUAL` — был популярным. Товар был популярным последние 56 дней. Сейчас у него нет остатков.\n- `WAS_SURPLUS` — был избыточным. Товар был избыточным последние 56 дней. Сейчас у него нет остатков.\n" + }, + "valid_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество товара без брака и с достаточным сроком годности, которое скоро разместим на складе Ozon и начнём продавать." + }, + "waiting_docs_stock_count": { + "type": "integer", + "format": "int32", + "description": "Количество маркируемых товаров, которые ожидают ваших действий." + }, + "warehouse_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор склада." + }, + "warehouse_name": { + "type": "string", + "description": "Название склада." + } + } + }, + "v1AnalyticsStocksResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "description": "Информация о товарах.", + "items": { + "$ref": "#/components/schemas/v1AnalyticsStocksResponseItem" + } + } + } + }, + "v1AverageDeliveryTimeRequestDeliverySchema": { + "type": "string", + "default": "All", + "description": "Схема доставки:\n- `ALL` — все;\n- `FBO` — доставка со склада Ozon;\n- `FBS` — доставка со своего склада;\n- `UNKNOWN` — неизвестное значение.\n", + "enum": [ + "All", + "FBO", + "FBS", + "UNKNOWN" + ] + }, + "v1AverageDeliveryTimeRequestSupplyPeriod": { + "type": "string", + "description": "Период поставки в неделях:\n- `ONE_WEEK` — 1;\n- `TWO_WEEKS` — 2;\n- `FOUR_WEEKS` — 4;\n- `EIGHT_WEEKS` — 8.\n", + "default": "FOUR_WEEKS", + "enum": [ + "FOUR_WEEKS", + "ONE_WEEK", + "TWO_WEEKS", + "EIGHT_WEEKS" + ] + }, + "v1AverageDeliveryTimeRequest": { + "type": "object", + "required": [ + "delivery_schema", + "supply_period" + ], + "properties": { + "delivery_schema": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeRequestDeliverySchema" + }, + "sku": { + "maximum": 100, + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "supply_period": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeRequestSupplyPeriod" + } + } + }, + "v1AverageDeliveryTimeResponseDeliveryTimeStatus": { + "type": "string", + "description": "Нормативное время доставки:\n- `UNKNOWN` — неизвестное значение;\n- `FAST` — до 29 часов;\n- `MEDIUM` — от 30 до 49 часов;\n- `LONG` — от 50 часов.\n", + "default": "UNKNOWN", + "enum": [ + "UNKNOWN", + "FAST", + "MEDIUM", + "LONG" + ] + }, + "v1AverageDeliveryTimeResponseClustersDataAmnesty": { + "type": "object", + "properties": { + "delivery_time": { + "type": "integer", + "format": "int32", + "description": "Нормативное время доставки в часах." + }, + "delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseDeliveryTimeStatus" + }, + "orders_count": { + "type": "integer", + "format": "int32", + "description": "Количество заказанных товаров из кластера." + }, + "orders_percent": { + "type": "integer", + "format": "int32", + "description": "Процент заказов из указанного кластера от общего количества заказов по всем кластерам отгрузки." + } + } + }, + "v1AverageDeliveryTimeResponseClustersData": { + "type": "object", + "properties": { + "another_delivery_time": { + "description": "Зачли с другим временем доставки.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseClustersDataAmnesty" + } + }, + "cluster_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор кластера." + }, + "delivery_time_FBO": { + "type": "integer", + "format": "int32", + "description": "Нормативное время доставки по FBO в часах." + }, + "delivery_time_FBS": { + "type": "number", + "format": "double", + "description": "Нормативное время доставки по FBS в часах." + }, + "delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseDeliveryTimeStatus" + }, + "orders_count": { + "type": "integer", + "format": "int32", + "description": "Количество заказанных товаров из кластера отгрузки." + }, + "orders_percent": { + "description": "Процент заказов из указанного кластера от общего количества заказов по всем кластерам отгрузки.", + "type": "integer", + "format": "int32" + } + } + }, + "AttentionLevelEnum": { + "type": "string", + "description": "Доля влияния кластера на общий показатель:\n - `UNKNOWN` — неизвестное значение;\n - `LOW` — хороший показатель поставки товаров;\n - `MEDIUM` — требуется поставка недостающих товаров;\n - `HI` — требуется поставка недостающих товаров в первую очередь.\n", + "default": "UNKNOWN", + "enum": [ + "UNKNOWN", + "LOW", + "MEDIUM", + "HI" + ] + }, + "v1AverageDeliveryTimeResponseMetricsOrdersCountValueFast": { + "description": "Нормативное время доставки до покупателя не больше 29 часов.", + "type": "object", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseMetricsOrdersCountValueLong": { + "description": "Нормативное время доставки до покупателя от 50 часов и больше.", + "type": "object", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseMetricsOrdersCountValueMedium": { + "type": "object", + "description": "Нормативное время доставки до покупателя от 30 до 49 часов.", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseMetricsOrdersCount": { + "type": "object", + "description": "Количество заказанных товаров.", + "properties": { + "fast": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseMetricsOrdersCountValueFast" + }, + "long": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseMetricsOrdersCountValueLong" + }, + "medium": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseMetricsOrdersCountValueMedium" + }, + "total": { + "description": "Всего.", + "type": "integer", + "format": "int32" + } + } + }, + "v1AverageDeliveryTimeResponseMetrics": { + "description": "Метрики доставки.", + "type": "object", + "properties": { + "attention_level": { + "$ref": "#/components/schemas/AttentionLevelEnum" + }, + "average_delivery_time": { + "type": "integer", + "format": "int32", + "description": "Среднее время доставки до покупателя." + }, + "average_delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseDeliveryTimeStatus" + }, + "impact_share": { + "type": "integer", + "format": "int32", + "description": "Доля влияния кластера на общий показатель в процентах.", + "deprecated": true + }, + "exact_impact_share": { + "type": "string", + "description": "Доля влияния кластера на общий показатель c точностью до 4 знаков после запятой." + }, + "lost_profit": { + "type": "integer", + "format": "int32", + "description": "Переплата за логистику." + }, + "orders_count": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseMetricsOrdersCount" + }, + "recommended_supply": { + "type": "integer", + "format": "int32", + "description": "Рекомендуемая поставка в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseData": { + "type": "object", + "properties": { + "clusters_data": { + "type": "array", + "description": "Данные по кластерам отгрузки.", + "items": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseClustersData" + } + }, + "delivery_cluster_id": { + "description": "Идентификатор кластера доставки.", + "type": "integer", + "format": "int64" + }, + "metrics": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseMetrics" + } + } + }, + "v1AverageDeliveryTimeResponseOrdersCountValueFast": { + "description": "Нормативное время доставки до покупателя не больше 29 часов.", + "type": "object", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseOrdersCountValueLong": { + "description": "Нормативное время доставки до покупателя от 50 часов и больше.", + "type": "object", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseOrdersCountValueMedium": { + "description": "Нормативное время доставки до покупателя от 30 до 49 часов.", + "type": "object", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeResponseOrdersCount": { + "description": "Количество заказанных товаров из кластера отгрузки.", + "type": "object", + "properties": { + "fast": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseOrdersCountValueFast" + }, + "long": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseOrdersCountValueLong" + }, + "medium": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseOrdersCountValueMedium" + }, + "total": { + "description": "Всего.", + "type": "integer", + "format": "int32" + } + } + }, + "AverageDeliveryTimeResponseTotal": { + "description": "Общие данные.", + "type": "object", + "properties": { + "attention_level": { + "$ref": "#/components/schemas/AttentionLevelEnum" + }, + "average_delivery_time": { + "type": "integer", + "format": "int32", + "description": "Среднее время доставки до покупателя." + }, + "average_delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseDeliveryTimeStatus" + }, + "impact_share": { + "type": "integer", + "format": "int32", + "description": "Доля влияния кластера на общий показатель в процентах.", + "deprecated": true + }, + "exact_impact_share": { + "type": "string", + "description": "Доля влияния кластера на общий показатель c точностью до 4 знаков после запятой." + }, + "lost_profit": { + "type": "integer", + "format": "int32", + "description": "Переплата за логистику." + }, + "orders_count": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseOrdersCount" + }, + "recommended_supply": { + "type": "integer", + "format": "int32", + "description": "Рекомендуемая поставка в штуках." + } + } + }, + "v1AverageDeliveryTimeResponse": { + "type": "object", + "properties": { + "data": { + "description": "Информация о кластере.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeResponseData" + } + }, + "total": { + "$ref": "#/components/schemas/AverageDeliveryTimeResponseTotal" + } + } + }, + "AverageDeliveryTimeDetailsRequestFiltersDeliverySchema": { + "type": "string", + "default": "ALL", + "description": "Схема доставки:\n- `ALL` — все;\n- `FBO` — доставка со склада Ozon;\n- `FBS` — доставка со своего склада.\n", + "enum": [ + "ALL", + "FBO", + "FBS" + ] + }, + "AverageDeliveryTimeDetailsRequestFiltersSupplyPeriod": { + "type": "string", + "default": "FOUR_WEEKS", + "description": "Период поставки в неделях:\n- `ONE_WEEK` — 1;\n- `TWO_WEEKS` — 2;\n- `FOUR_WEEKS` — 4;\n- `EIGHT_WEEKS` — 8.\n", + "enum": [ + "ONE_WEEK", + "TWO_WEEKS", + "FOUR_WEEKS", + "EIGHT_WEEKS" + ] + }, + "AverageDeliveryTimeDetailsRequestFilters": { + "type": "object", + "description": "Фильтры.", + "properties": { + "delivery_schema": { + "$ref": "#/components/schemas/AverageDeliveryTimeDetailsRequestFiltersDeliverySchema" + }, + "supply_period": { + "$ref": "#/components/schemas/AverageDeliveryTimeDetailsRequestFiltersSupplyPeriod" + } + } + }, + "v1AverageDeliveryTimeDetailsRequest": { + "type": "object", + "required": [ + "cluster_id", + "limit", + "offset" + ], + "properties": { + "cluster_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор кластера." + }, + "filters": { + "$ref": "#/components/schemas/AverageDeliveryTimeDetailsRequestFilters" + }, + "limit": { + "type": "integer", + "format": "int32", + "default": 100, + "maximum": 1000, + "description": "Количество элементов в ответе.\n" + }, + "offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Количество элементов, которое будет пропущено в ответе. \nНапример, если `offset=10`, ответ начнётся с 11-го найденного элемента.\n" + } + } + }, + "v1AverageDeliveryTimeDetailsResponseDeliveryTimeStatus": { + "type": "string", + "description": "Нормативное время доставки:\n- `UNKNOWN` — неизвестное значение;\n- `FAST` — до 29 часов;\n- `MEDIUM` — от 30 до 49 часов;\n- `LONG` — от 50 часов.\n", + "enum": [ + "UNKNOWN", + "FAST", + "MEDIUM", + "LONG" + ] + }, + "v1AverageDeliveryTimeDetailsResponseClustersDataAmnesty": { + "type": "object", + "properties": { + "delivery_time": { + "type": "integer", + "format": "int32", + "description": "Нормативное время доставки в часах." + }, + "delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseDeliveryTimeStatus" + }, + "orders_count": { + "type": "integer", + "format": "int32", + "description": "Количество заказанных товаров из кластера." + }, + "orders_percent": { + "type": "integer", + "format": "int32", + "description": "Процент заказов из указанного кластера от общего количества заказов по всем кластерам отгрузки." + } + } + }, + "v1AverageDeliveryTimeDetailsResponseClustersData": { + "type": "object", + "properties": { + "another_delivery_time": { + "description": "Зачли доставку с другим временем.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseClustersDataAmnesty" + } + }, + "cluster_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор кластера." + }, + "delivery_time_FBO": { + "type": "integer", + "format": "int32", + "description": "Нормативное время доставки по FBO в часах." + }, + "delivery_time_FBS": { + "type": "number", + "format": "double", + "description": "Нормативное время доставки по FBS в часах." + }, + "delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseDeliveryTimeStatus" + }, + "orders_count": { + "type": "integer", + "format": "int32", + "description": "Количество заказанных товаров из кластера отгрузки." + }, + "orders_percent": { + "description": "Процент заказов из указанного кластера от общего количества заказов по всем кластерам отгрузки.", + "type": "integer", + "format": "int32" + } + } + }, + "AverageDeliveryTimeDetailsResponseItemDataDeliverySchema": { + "type": "string", + "description": "Схема доставки:\n- `ALL` — все:\n- `FBO` — доставка со склада Ozon;\n- `FBS` — доставка со своего склада;\n- `UNKNOWN` — неизвестное значение.\n", + "enum": [ + "ALL", + "FBO", + "FBS", + "UNKNOWN" + ] + }, + "AverageDeliveryTimeDetailsResponseItemData": { + "type": "object", + "description": "Данные о товаре.", + "properties": { + "delivery_schema": { + "$ref": "#/components/schemas/AverageDeliveryTimeDetailsResponseItemDataDeliverySchema" + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + } + }, + "AverageDeliveryTimeDetailsResponseMetricsAttentionLevel": { + "type": "string", + "description": "Влияние кластера на общий показатель:\n\n- `LOW` — хороший показатель поставки товаров;\n- `MEDIUM` — поставьте недостающие товары;\n- `HI` — поставьте недостающие товары в первую очередь;\n- `UNKNOWN` — неизвестное значение.\n", + "enum": [ + "LOW", + "MEDIUM", + "HI", + "UNKNOWN" + ] + }, + "v1AverageDeliveryTimeDetailsResponseMetricsOrdersCountValueFast": { + "type": "object", + "description": "Быстрое нормативное время доставки.", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeDetailsResponseMetricsOrdersCountValueLong": { + "type": "object", + "description": "Долгое нормативное время доставки.", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeDetailsResponseMetricsOrdersCountValueMedium": { + "type": "object", + "description": "Среднее нормативное время доставки.", + "properties": { + "percent": { + "type": "integer", + "format": "int32", + "description": "Значение в процентах." + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Значение в штуках." + } + } + }, + "v1AverageDeliveryTimeDetailsResponseMetricsOrdersCount": { + "type": "object", + "description": "Заказано товаров по нормативному времени доставки.", + "properties": { + "fast": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseMetricsOrdersCountValueFast" + }, + "long": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseMetricsOrdersCountValueLong" + }, + "medium": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseMetricsOrdersCountValueMedium" + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Общее количество заказанных товаров." + } + } + }, + "v1AverageDeliveryTimeDetailsResponseMetrics": { + "type": "object", + "description": "Метрики доставки.", + "properties": { + "attention_level": { + "$ref": "#/components/schemas/AverageDeliveryTimeDetailsResponseMetricsAttentionLevel" + }, + "average_delivery_time": { + "type": "integer", + "format": "int32", + "description": "Среднее время доставки до покупателя." + }, + "average_delivery_time_status": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseDeliveryTimeStatus" + }, + "impact_share": { + "type": "integer", + "format": "int32", + "description": "Доля влияния кластера на общий показатель в процентах.", + "deprecated": true + }, + "exact_impact_share": { + "type": "string", + "description": "Доля влияния кластера на общий показатель c точностью до 4 знаков после запятой." + }, + "lost_profit": { + "type": "integer", + "format": "int32", + "description": "Переплата за логистику." + }, + "orders_count": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseMetricsOrdersCount" + }, + "recommended_supply": { + "type": "integer", + "format": "int32", + "description": "Рекомендуемая поставка в штуках." + } + } + }, + "v1AverageDeliveryTimeDetailsResponseData": { + "type": "object", + "properties": { + "clusters_data": { + "type": "array", + "description": "Данные по кластерам отгрузки.", + "items": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseClustersData" + } + }, + "item": { + "$ref": "#/components/schemas/AverageDeliveryTimeDetailsResponseItemData" + }, + "metrics": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseMetrics" + } + } + }, + "v1AverageDeliveryTimeDetailsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Информация о кластере.", + "items": { + "$ref": "#/components/schemas/v1AverageDeliveryTimeDetailsResponseData" + } + }, + "total_rows": { + "type": "integer", + "format": "int64", + "description": "Всего записей." + } + } + }, + "AverageDeliveryTimeSummaryResponseTariffStatus": { + "type": "string", + "description": "Статус тарифа FBO:\n - `TariffStatus_Unspecified` — неизвестное значение;\n - `GOOD` — быстро;\n - `MEDIUM` — средне;\n - `BAD` — долго.\n", + "default": "TariffStatus_Unspecified", + "enum": [ + "TariffStatus_Unspecified", + "GOOD", + "MEDIUM", + "BAD" + ] + }, + "AverageDeliveryTimeSummaryResponseTariff": { + "type": "object", + "description": "Информация о тарифе.", + "properties": { + "fee": { + "description": "Процент от цены товаров.", + "type": "number", + "format": "float" + }, + "start": { + "description": "Значение метрики среднего времени доставки.", + "type": "integer", + "format": "int32" + }, + "tariff_status": { + "$ref": "#/components/schemas/AverageDeliveryTimeSummaryResponseTariffStatus" + }, + "tariff_value": { + "description": "Процент к базовому тарифу логистики FBO.", + "type": "number", + "format": "float" + } + } + }, + "v1AverageDeliveryTimeSummaryResponse": { + "type": "object", + "properties": { + "average_delivery_time": { + "description": "Среднее время доставки до покупателя.", + "type": "integer", + "format": "int32" + }, + "current_tariff": { + "$ref": "#/components/schemas/AverageDeliveryTimeSummaryResponseTariff" + }, + "lost_profit": { + "description": "Переплата за логистику FBO.", + "type": "number", + "format": "double" + }, + "perfect_delivery_time": { + "description": "Рекомендуемое среднее время доставки до покупателя.", + "type": "integer", + "format": "int32" + }, + "updated_at": { + "description": "Дата и время последнего обновления данных.", + "type": "string", + "format": "date-time" + } + } + }, + "v1SetPostingsRequest": { + "type": "object", + "title": "object", + "properties": { + "carriage_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор отгрузки.", + "required": true + }, + "posting_numbers": { + "type": "array", + "description": "Актуальный список отправлений.", + "items": { + "type": "string" + } + } + } + }, + "SetPostingsResponseResult": { + "type": "object", + "title": "object", + "properties": { + "error": { + "type": "string", + "description": "Описание ошибки." + }, + "posting_number": { + "type": "string", + "description": "Номер отправления." + }, + "result": { + "description": "Результат обработки запроса. `true`, если запрос был обработан успешно.\n", + "type": "boolean" + } + } + }, + "v1SetPostingsResponse": { + "type": "object", + "title": "object", + "properties": { + "result": { + "items": { + "$ref": "#/components/schemas/SetPostingsResponseResult" + } + } + } + }, + "v1CarriageCancelRequest": { + "type": "object", + "title": "object", + "properties": { + "carriage_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор отгрузки.", + "required": true + } + } + }, + "v1CarriageCancelResponse": { + "type": "object", + "title": "object", + "properties": { + "error": { + "type": "string", + "description": "Описание ошибки." + }, + "carriage_status": { + "type": "string", + "description": "Статус отгрузки." + } + } + }, + "v1ProductActionTimerUpdateRequest": { + "type": "object", + "properties": { + "product_ids": { + "description": "Список идентификаторов товаров в системе продавца — `product_id`.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1ProductActionTimerUpdateResponse": { + "type": "object", + "title": "object" + }, + "v1ProductActionTimerStatusRequest": { + "type": "object", + "properties": { + "product_ids": { + "description": "Список идентификаторов товаров в системе продавца — `product_id`.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "v1ProductActionTimerStatusResponseStatuses": { + "type": "object", + "properties": { + "expired_at": { + "type": "string", + "format": "date-time", + "description": "Время окончания таймера." + }, + "min_price_for_auto_actions_enabled": { + "type": "boolean", + "description": "`true`, если Ozon учитывает минимальную цену при добавлении в акции.\n" + }, + "product_id": { + "format": "int64", + "type": "integer", + "description": "Идентификатор товара в системе продавца — `product_id`." + } + } + }, + "v1ProductActionTimerStatusResponse": { + "type": "object", + "properties": { + "statuses": { + "items": { + "$ref": "#/components/schemas/v1ProductActionTimerStatusResponseStatuses" + } + } + } + }, + "v1ProductInfoWrongVolumeRequest": { + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "limit": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 1000, + "description": "Максимальное количество элементов в ответе." + } + } + }, + "ProductInfoWrongVolumeResponseWrongVolumeProduct": { + "type": "object", + "title": "object", + "properties": { + "height": { + "type": "integer", + "format": "int64", + "description": "Высота товара." + }, + "length": { + "type": "integer", + "format": "int64", + "description": "Длина товара." + }, + "name": { + "type": "string", + "description": "Название товара." + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "weight": { + "type": "integer", + "format": "int64", + "description": "Вес товара в упаковке." + }, + "width": { + "type": "integer", + "format": "int64", + "description": "Ширина товара." + } + } + }, + "v1ProductInfoWrongVolumeResponse": { + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "products": { + "description": "Список товаров.", + "items": { + "$ref": "#/components/schemas/ProductInfoWrongVolumeResponseWrongVolumeProduct" + } + } + } + }, + "RolesByTokenResponseRoles": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Название роли." + }, + "methods": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Методы, доступные для роли." + } + } + }, + "v1RolesByTokenResponse": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "description": "Информация о доступных ролях и методах.", + "items": { + "$ref": "#/components/schemas/RolesByTokenResponseRoles" + } + } + } + }, + "v1GetSupplyReturnsSummaryReportRequest": { + "type": "object", + "required": [ + "date_from", + "date_to", + "limit" + ], + "properties": { + "date_from": { + "description": "Дата начала отчётного периода в формате `YYYY-MM-DD`.", + "type": "string" + }, + "date_to": { + "description": "Дата окончания отчётного периода в формате `YYYY-MM-DD`.", + "type": "string" + }, + "last_id": { + "description": "Идентификатор последнего значения на странице. Чтобы получить следующие значения, укажите `last_id` из ответа предыдущего запроса.", + "type": "string" + }, + "limit": { + "description": "Количество элементов в ответе.", + "minimum": 1, + "maximum": 500, + "type": "integer", + "format": "int32" + } + } + }, + "v1GetSupplyReturnsSummaryReportResponseRow": { + "type": "object", + "properties": { + "barcode": { + "description": "Штрихкод товара.", + "type": "string" + }, + "box_barcode": { + "description": "Штрихкод коробки.", + "type": "string" + }, + "box_height": { + "description": "Высота коробки в метрах.", + "type": "number", + "format": "double" + }, + "box_id": { + "description": "Идентификатор коробки.", + "type": "integer", + "format": "int64" + }, + "box_length": { + "description": "Длина коробки в метрах.", + "type": "number", + "format": "double" + }, + "box_state": { + "description": "Статус коробки:\n- `доступно к вывозу`;\n- `уже в заявке на вывоз`;\n- `подготовка к вывозу`;\n- `потеряна`;\n- `в пути`;\n- `компенсировано продавцу`;\n- `утилизирована`;\n- `собрано`;\n- `на СЦ`;\n- `у курьера`;\n- `неудачная попытка доставки`;\n- `получена`;\n- `отменено`;\n- `в процессе утилизации`;\n- `в пункте выдачи`;\n- `расформирована`.\n", + "type": "string" + }, + "box_volume": { + "description": "Объём коробки в литрах.", + "type": "number", + "format": "double" + }, + "box_weight": { + "description": "Вес коробки в килограммах.", + "type": "number", + "format": "double" + }, + "box_width": { + "description": "Ширина коробки в метрах.", + "type": "number", + "format": "double" + }, + "clearing_warehouse_name": { + "description": "Склад, на котором подготовили товары для вывоза.", + "type": "string" + }, + "delivery_date": { + "description": "Дата доставки товара в ПВЗ, СЦ или курьером.", + "type": "string" + }, + "delivery_type": { + "description": "Способ вывоза:\n- `самовывоз`;\n- `ПВЗ`;\n- `СЦ`;\n- `курьерская доставка`.\n", + "type": "string" + }, + "destination_warehouse_address": { + "description": "Адрес склада назначения.", + "type": "string" + }, + "destination_warehouse_name": { + "description": "Название склада назначения.", + "type": "string" + }, + "given_out_date": { + "description": "Дата, когда продавец забрал товары самовывозом со склада Ozon.", + "type": "string" + }, + "is_auto_return": { + "description": "Признак, что заявка на вывоз была создана автоматически.\n\n[Подробнее об автовывозе в Базе знаний продавца](https://seller-edu.ozon.ru/fbo/vozvraty-utilizaciya-izlishki/vyvoz-tovarov-so-sklada-ozon/avtovyvoz-tovarov-so-sklada-ozon)\n", + "type": "boolean" + }, + "name": { + "description": "Название товара.", + "type": "string" + }, + "offer_id": { + "description": "Артикул товара.", + "type": "string" + }, + "preliminary_delivery_price": { + "description": "Предварительная стоимость вывоза товара со склада силами Ozon.", + "type": "number", + "format": "double" + }, + "quant_count": { + "description": "Количество квантов в заявке на вывоз.", + "type": "integer", + "format": "int32" + }, + "quantity_for_return": { + "description": "Количество единиц товара в коробке или заявке на вывоз.", + "type": "integer", + "format": "int32" + }, + "return_created_at": { + "description": "Дата создания заявки на вывоз.", + "type": "string" + }, + "return_id": { + "description": "Идентификатор заявки на вывоз.", + "type": "integer", + "format": "int64" + }, + "return_state": { + "description": "Статус заявки на вывоз.\n\nВозможные значения для самовывоза со стока:\n- `создана`;\n- `собирается на складе`;\n- `собрана складом`;\n- `завершена`;\n- `заполнение данных`;\n- `утилизирована`.\n\nВозможные значения для СЦ, ПВЗ и курьерской доставки со стока:\n- `создаётся`;\n- `собирается на складке`;\n- `передаём в логистику`;\n- `в пути`;\n- `завершено`;\n- `можно забирать часть`;\n- `можно забирать все`;\n- `утилизирована`.\n\nВозможные значения для вывоза с поставок:\n\n- `заполнение данных`;\n- `подготовка к выдаче`;\n- `выдача`;\n- `завершено`;\n- `отклонено складом`;\n- `готово к вывозу`;\n- `утилизировано`;\n- `обрабатывается`;\n- `собирается на складе`;\n- `передаётся в логистику`;\n- `в пути`;\n- `можно забрать часть`;\n- `можно забрать все`.\n", + "type": "string" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + }, + "stock_type": { + "description": "Тип остатков для товаров стока:\n- `доступно к продаже`;\n- `маркируемые товары, ожидающие действий`;\n- `истекает срок годности`;\n- `брак, доступный к вывозу со стока`.\n\nТип остатков для товаров в коробках:\n- `брак`;\n- `опознанные излишки`;\n- `неопознанные излишки без SKU`.\n", + "type": "string" + }, + "utilization_date": { + "description": "Дата утилизации.", + "type": "string" + } + } + }, + "v1GetSupplyReturnsSummaryReportResponse": { + "type": "object", + "properties": { + "last_id": { + "description": "Идентификатор последнего значения на странице.", + "type": "string" + }, + "returns_summary_report_rows": { + "description": "Информация о товарах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GetSupplyReturnsSummaryReportResponseRow" + } + } + } + }, + "v1GetSupplierReturnsSummaryReportRequest": { + "type": "object", + "required": [ + "date_from", + "date_to", + "limit" + ], + "properties": { + "date_from": { + "description": "Дата начала отчётного периода в формате `YYYY-MM-DD`.", + "type": "string" + }, + "date_to": { + "description": "Дата окончания отчётного периода в формате `YYYY-MM-DD`.", + "type": "string" + }, + "last_id": { + "description": "Идентификатор последнего значения на странице. Чтобы получить следующие значения, укажите `last_id` из ответа предыдущего запроса.", + "type": "string" + }, + "limit": { + "description": "Количество элементов в ответе.", + "minimum": 1, + "maximum": 500, + "type": "integer", + "format": "int32" + } + } + }, + "v1GetSupplierReturnsSummaryReportResponseRow": { + "type": "object", + "properties": { + "barcode": { + "description": "Штрихкод товара.", + "type": "string" + }, + "box_barcode": { + "description": "Штрихкод коробки.", + "type": "string" + }, + "box_height": { + "description": "Высота коробки в метрах.", + "type": "number", + "format": "double" + }, + "box_id": { + "description": "Идентификатор коробки.", + "type": "integer", + "format": "int64" + }, + "box_length": { + "description": "Длина коробки в метрах.", + "type": "number", + "format": "double" + }, + "box_state": { + "description": "Статус коробки:\n- `доступно к вывозу`;\n- `уже в заявке на вывоз`;\n- `подготовка к вывозу`;\n- `потеряна`;\n- `в пути`;\n- `компенсировано продавцу`;\n- `утилизирована`;\n- `собрано`;\n- `на СЦ`;\n- `у курьера`;\n- `неудачная попытка доставки`;\n- `получена`;\n- `отменено`;\n- `в процессе утилизации`;\n- `в пункте выдачи`;\n- `расформирована`.\n", + "type": "string" + }, + "box_volume": { + "description": "Объём коробки в литрах.", + "type": "number", + "format": "double" + }, + "box_weight": { + "description": "Вес коробки в килограммах.", + "type": "number", + "format": "double" + }, + "box_width": { + "description": "Ширина коробки в метрах.", + "type": "number", + "format": "double" + }, + "clearing_warehouse_name": { + "description": "Склад, на котором подготовили товары для вывоза.", + "type": "string" + }, + "delivery_date": { + "description": "Дата доставки товара в ПВЗ, СЦ или курьером.", + "type": "string" + }, + "delivery_type": { + "description": "Способ вывоза:\n- `самовывоз`;\n- `ПВЗ`;\n- `СЦ`;\n- `курьерская доставка`.\n", + "type": "string" + }, + "destination_warehouse_address": { + "description": "Адрес склада назначения.", + "type": "string" + }, + "destination_warehouse_name": { + "description": "Название склада назначения.", + "type": "string" + }, + "given_out_date": { + "description": "Дата, когда продавец забрал товары самовывозом со склада Ozon.", + "type": "string" + }, + "is_auto_return": { + "description": "Признак, что заявка на вывоз была создана автоматически.\n\n[Подробнее об автовывозе в Базе знаний продавца](https://seller-edu.ozon.ru/fbo/vozvraty-utilizaciya-izlishki/vyvoz-tovarov-so-sklada-ozon/avtovyvoz-tovarov-so-sklada-ozon)\n", + "type": "boolean" + }, + "name": { + "description": "Название товара.", + "type": "string" + }, + "offer_id": { + "description": "Артикул товара.", + "type": "string" + }, + "preliminary_delivery_price": { + "description": "Предварительная стоимость вывоза товара со склада силами Ozon.", + "type": "number", + "format": "double" + }, + "quant_count": { + "description": "Количество квантов в заявке на вывоз.", + "type": "integer", + "format": "int32" + }, + "quantity_for_return": { + "description": "Количество единиц товара в коробке или заявке на вывоз.", + "type": "integer", + "format": "int32" + }, + "return_created_at": { + "description": "Дата создания заявки на вывоз.", + "type": "string" + }, + "return_id": { + "description": "Идентификатор заявки на вывоз.", + "type": "integer", + "format": "int64" + }, + "return_state": { + "description": "Статус заявки на вывоз.\n\nВозможные значения для самовывоза со стока:\n- `создана`;\n- `собирается на складе`;\n- `собрана складом`;\n- `завершена`;\n- `заполнение данных`;\n- `утилизирована`.\n\nВозможные значения для СЦ, ПВЗ и курьерской доставки со стока:\n- `создаётся`;\n- `собирается на складке`;\n- `передаём в логистику`;\n- `в пути`;\n- `завершено`;\n- `можно забирать часть`;\n- `можно забирать все`;\n- `утилизирована`.\n\nВозможные значения для вывоза с поставок:\n\n- `заполнение данных`;\n- `подготовка к выдаче`;\n- `выдача`;\n- `завершено`;\n- `отклонено складом`;\n- `готово к вывозу`;\n- `утилизировано`;\n- `обрабатывается`;\n- `собирается на складе`;\n- `передаётся в логистику`;\n- `в пути`;\n- `можно забрать часть`;\n- `можно забрать все`.\n", + "type": "string" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + }, + "stock_type": { + "description": "Тип остатков для товаров стока:\n- `доступно к продаже`;\n- `маркируемые товары, ожидающие действий`;\n- `истекает срок годности`;\n- `брак, доступный к вывозу со стока`.\n\nТип остатков для товаров в коробках:\n- `брак`;\n- `опознанные излишки`;\n- `неопознанные излишки без SKU`.\n", + "type": "string" + }, + "utilization_date": { + "description": "Дата утилизации.", + "type": "string" + } + } + }, + "v1GetSupplierReturnsSummaryReportResponse": { + "type": "object", + "properties": { + "last_id": { + "description": "Идентификатор последнего значения на странице.", + "type": "string" + }, + "returns_summary_report_rows": { + "description": "Информация о товарах.", + "type": "array", + "items": { + "$ref": "#/components/schemas/v1GetSupplierReturnsSummaryReportResponseRow" + } + } + } + }, + "v1CommentCreateRequest": { + "type": "object", + "properties": { + "mark_review_as_processed": { + "description": "Обновление статуса у отзыва:\n- `true` — статус изменится на `Processed`.\n- `false` — статус не изменится.\n", + "type": "boolean" + }, + "parent_comment_id": { + "description": "Идентификатор родительского комментария, на который вы отвечаете.", + "type": "string" + }, + "review_id": { + "description": "Идентификатор отзыва.", + "type": "string" + }, + "text": { + "description": "Текст комментария.", + "type": "string" + } + }, + "required": [ + "review_id", + "text" + ] + }, + "v1CommentCreateResponse": { + "type": "object", + "properties": { + "comment_id": { + "description": "Идентификатор комментария.", + "type": "string" + } + } + }, + "v1CommentDeleteRequest": { + "type": "object", + "properties": { + "comment_id": { + "description": "Идентификатор комментария.", + "type": "string" + } + }, + "required": [ + "comment_id" + ] + }, + "v1CommentSort": { + "type": "string", + "default": "ASC", + "enum": [ + "ASC", + "DESC" + ], + "description": "Направление сортировки:\n - `ASC` — по возрастанию,\n - `DESC` — по убыванию.\n" + }, + "v1CommentListRequest": { + "type": "object", + "properties": { + "limit": { + "description": "Ограничение значений в ответе.\nМинимум — 20. Максимум — 100.\n", + "type": "integer", + "format": "int32" + }, + "offset": { + "description": "Количество элементов, которое будет пропущено с начала списка в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента.", + "type": "integer", + "format": "int32" + }, + "review_id": { + "description": "Идентификатор отзыва.", + "type": "string" + }, + "sort_dir": { + "$ref": "#/components/schemas/v1CommentSort" + } + }, + "required": [ + "review_id", + "limit" + ] + }, + "CommentListResponseComment": { + "type": "object", + "properties": { + "id": { + "description": "Идентификатор комментария.", + "type": "string" + }, + "is_official": { + "description": "`true`, если комментарий оставило официальное лицо, `false` — покупатель.\n", + "type": "boolean" + }, + "is_owner": { + "description": "`true`, если комментарий оставил продавец, `false` — покупатель.\n", + "type": "boolean" + }, + "parent_comment_id": { + "description": "Идентификатор родительского комментария, на который нужно ответить.", + "type": "string" + }, + "published_at": { + "description": "Дата публикации комментария.", + "type": "string", + "format": "date-time" + }, + "text": { + "description": "Текст комментария.", + "type": "string" + } + } + }, + "v1CommentListResponse": { + "type": "object", + "properties": { + "comments": { + "description": "Информация о комментарии.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CommentListResponseComment" + } + }, + "offset": { + "description": "Количество элементов в выдаче.", + "type": "integer", + "format": "int32" + } + } + }, + "v1ReviewChangeStatusRequest": { + "type": "object", + "title": "ReviewChangeStatus", + "properties": { + "review_ids": { + "description": "Массив с идентификаторами отзывов от 1 до 100.", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "description": "Статус отзыва:\n- `PROCESSED` — обработанный,\n- `UNPROCESSED` — необработанный.\n", + "type": "string" + } + }, + "required": [ + "review_ids", + "status" + ] + }, + "v1ReviewCountResponse": { + "type": "object", + "properties": { + "processed": { + "description": "Количество обработанных отзывов.", + "type": "integer", + "format": "int32" + }, + "total": { + "description": "Количество всех отзывов.", + "type": "integer", + "format": "int32" + }, + "unprocessed": { + "description": "Количество необработанных отзывов.", + "type": "integer", + "format": "int32" + } + } + }, + "v1ReviewInfoRequest": { + "type": "object", + "title": "ReviewInfo", + "properties": { + "review_id": { + "description": "Идентификатор отзыва.", + "type": "string" + } + }, + "required": [ + "review_id" + ] + }, + "ReviewInfoResponsePhoto": { + "type": "object", + "properties": { + "height": { + "description": "Высота.", + "type": "integer", + "format": "int32" + }, + "url": { + "description": "Ссылка на изображение.", + "type": "string" + }, + "width": { + "description": "Ширина.", + "type": "integer", + "format": "int32" + } + } + }, + "ReviewInfoResponseVideo": { + "type": "object", + "properties": { + "height": { + "description": "Высота.", + "type": "integer", + "format": "int64" + }, + "preview_url": { + "description": "Ссылка на превью видео.", + "type": "string" + }, + "short_video_preview_url": { + "description": "Ссылка на короткое видео.", + "type": "string" + }, + "url": { + "description": "Ссылка на видео.", + "type": "string" + }, + "width": { + "description": "Ширина.", + "type": "integer", + "format": "int64" + } + } + }, + "v1ReviewInfoResponse": { + "type": "object", + "properties": { + "comments_amount": { + "description": "Количество комментариев к отзыву.", + "type": "integer", + "format": "int32" + }, + "dislikes_amount": { + "description": "Количество дизлайков на отзыве.", + "type": "integer", + "format": "int32" + }, + "id": { + "description": "Идентификатор отзыва.", + "type": "string" + }, + "is_rating_participant": { + "description": "`true`, если отзыв участвует в подсчёте рейтинга.\n", + "type": "boolean" + }, + "likes_amount": { + "description": "Количество лайков на отзыве.", + "type": "integer", + "format": "int32" + }, + "order_status": { + "type": "string", + "description": "Статус заказа, на который покупатель оставил отзыв:\n- `DELIVERED` — доставлен,\n- `CANCELLED` — отменён.\n" + }, + "photos": { + "type": "array", + "description": "Информация об изображении.", + "items": { + "$ref": "#/components/schemas/ReviewInfoResponsePhoto" + } + }, + "photos_amount": { + "description": "Количество изображений у отзыва.", + "type": "integer", + "format": "int32" + }, + "published_at": { + "description": "Дата публикации отзыва.", + "type": "string", + "format": "date-time" + }, + "rating": { + "description": "Оценка отзыва.", + "type": "integer", + "format": "int32" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "Статус отзыва:\n- `UNPROCESSED` — не обработан,\n- `PROCESSED` — обработан.\n", + "type": "string" + }, + "text": { + "description": "Текст отзыва.", + "type": "string" + }, + "videos": { + "type": "array", + "description": "Информация о видео.", + "items": { + "$ref": "#/components/schemas/ReviewInfoResponseVideo" + } + }, + "videos_amount": { + "description": "Количество видео у отзыва.", + "type": "integer", + "format": "int32" + } + } + }, + "v1ReviewListRequest": { + "type": "object", + "title": "ReviewList", + "properties": { + "last_id": { + "description": "Идентификатор последнего отзыва на странице.", + "type": "string" + }, + "limit": { + "description": "Количество отзывов в ответе. Минимум — 20, максимум — 100.", + "type": "integer", + "format": "int32" + }, + "sort_dir": { + "description": "Направление сортировки:\n- `ASC` — по возрастанию,\n- `DESC` — по убыванию.\n", + "type": "string" + }, + "status": { + "description": "Статусы отзывов:\n- `ALL` — все,\n- `UNPROCESSED` — необработанные,\n- `PROCESSED` — обработанные.\n", + "type": "string" + } + }, + "required": [ + "limit" + ] + }, + "ReviewListResponseReview": { + "type": "object", + "properties": { + "comments_amount": { + "description": "Количество комментариев у отзыва.", + "type": "integer", + "format": "int32" + }, + "id": { + "description": "Идентификатор отзыва.", + "type": "string" + }, + "is_rating_participant": { + "description": "`true`, если отзыв участвует в подсчёте рейтинга.\n", + "type": "boolean" + }, + "order_status": { + "description": "Статус заказа, на который покупатель оставил отзыв:\n- `DELIVERED` — доставлен,\n- `CANCELLED` — отменён.\n", + "type": "string" + }, + "photos_amount": { + "description": "Количество изображений у отзыва.", + "type": "integer", + "format": "int32" + }, + "published_at": { + "description": "Дата публикации отзыва.", + "type": "string", + "format": "date-time" + }, + "rating": { + "description": "Оценка отзыва.", + "type": "integer", + "format": "int32" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "Статус отзыва:\n- `UNPROCESSED` — не обработан,\n- `PROCESSED` — обработан.\n", + "type": "string" + }, + "text": { + "description": "Текст отзыва.", + "type": "string" + }, + "videos_amount": { + "description": "Количество видео у отзыва.", + "type": "integer", + "format": "int32" + } + } + }, + "v1ReviewListResponse": { + "type": "object", + "properties": { + "has_next": { + "description": "`true`, если в ответе вернули не все отзывы.\n", + "type": "boolean" + }, + "last_id": { + "description": "Идентификатор последнего отзыва на странице.", + "type": "string" + }, + "reviews": { + "description": "Информация об отзыве.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ReviewListResponseReview" + } + } + } + }, + "ProductV1QuantListRequest": { + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Максимальное количество элементов в ответе." + }, + "visibility": { + "default": "ALL", + "enum": [ + "ALL", + "VISIBLE", + "INVISIBLE", + "EMPTY_STOCK", + "NOT_MODERATED", + "MODERATED", + "DISABLED", + "STATE_FAILED", + "READY_TO_SUPPLY", + "VALIDATION_STATE_PENDING", + "VALIDATION_STATE_FAIL", + "VALIDATION_STATE_SUCCESS", + "TO_SUPPLY", + "IN_SALE", + "REMOVED_FROM_SALE", + "OVERPRICED", + "CRITICALLY_OVERPRICED", + "EMPTY_BARCODE", + "BARCODE_EXISTS", + "QUARANTINE", + "ARCHIVED", + "OVERPRICED_WITH_STOCK", + "PARTIAL_APPROVED" + ], + "type": "string", + "description": "Фильтр по видимости товара:\n- `ALL` — все товары, кроме архивных.\n- `VISIBLE` — товары, которые видны покупателям.\n- `INVISIBLE` — товары, которые не видны покупателям.\n- `EMPTY_STOCK` — товары, которых нет в наличии.\n- `NOT_MODERATED` — товары, которые не прошли модерацию.\n- `MODERATED` — товары, которые прошли модерацию.\n- `DISABLED` — товары, которые видны покупателям, но недоступны к покупке.\n- `STATE_FAILED` — товары, создание которых завершилось ошибкой.\n- `READY_TO_SUPPLY` — товары, готовые к поставке.\n- `VALIDATION_STATE_PENDING` — товары, которые проходят проверку валидатором на премодерации.\n- `VALIDATION_STATE_FAIL` — товары, которые не прошли проверку валидатором на премодерации.\n- `VALIDATION_STATE_SUCCESS` — товары, которые прошли проверку валидатором на премодерации.\n- `TO_SUPPLY` — товары, готовые к продаже.\n- `IN_SALE` — товары в продаже.\n- `REMOVED_FROM_SALE` — товары, скрытые от покупателей.\n- `OVERPRICED` — превышение цены.\n- `CRITICALLY_OVERPRICED` — критическое превышение цены.\n- `EMPTY_BARCODE` — пустой штрихкод.\n- `BARCODE_EXISTS` — штрихкод указан.\n- `QUARANTINE` — товар в карантине после изменения цены на 50% и больше.\n- `ARCHIVED` — товары в архиве.\n- `OVERPRICED_WITH_STOCK` — товары в продаже, цена которых выше, чем у конкурентов.\n- `PARTIAL_APPROVED` — товары в продаже, у которых пустое или неполное описание.\n" + } + } + }, + "ProductV1QuantListResponseProductsQuants": { + "type": "object", + "title": "object", + "properties": { + "quant_code": { + "type": "string", + "description": "Идентификатор кванта." + }, + "quant_size": { + "type": "integer", + "format": "int64", + "description": "Размер кванта." + } + } + }, + "ProductV1QuantListResponseProducts": { + "type": "object", + "title": "object", + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "quants": { + "description": "Список квантов товара.", + "items": { + "$ref": "#/components/schemas/ProductV1QuantListResponseProductsQuants" + } + } + } + }, + "ProductV1QuantListResponse": { + "type": "object", + "title": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Указатель для выборки следующих данных." + }, + "products": { + "description": "Эконом-товары.", + "items": { + "$ref": "#/components/schemas/ProductV1QuantListResponseProducts" + } + }, + "total_items": { + "type": "integer", + "format": "int32", + "description": "Остаток на всех складах, шт." + } + } + }, + "ProductV1QuantInfoRequest": { + "type": "object", + "title": "object", + "properties": { + "quant_code": { + "minItems": 1, + "maxItems": 1000, + "description": "Список квантов с товарами.\n", + "items": { + "type": "string" + } + } + }, + "required": [ + "quant_code" + ] + }, + "ProductV1QuantInfoResponseResultItemsQuantInfoQuantsBarcodesExtended": { + "type": "object", + "title": "object", + "properties": { + "barcode": { + "type": "string", + "description": "Штрихкод." + }, + "error": { + "type": "string", + "description": "Ошибка получения штрихкода." + }, + "status": { + "type": "string", + "description": "Статус штрихкода." + } + } + }, + "ProductV1QuantInfoResponseResultItemsQuantInfoQuantsDimensions": { + "type": "object", + "title": "object", + "description": "Габариты.", + "properties": { + "depth": { + "type": "integer", + "format": "int64", + "description": "Глубина, мм." + }, + "height": { + "type": "integer", + "format": "int64", + "description": "Высота, мм." + }, + "weight": { + "type": "integer", + "format": "int64", + "description": "Вес, г." + }, + "width": { + "type": "integer", + "format": "int64", + "description": "Ширина, мм." + } + } + }, + "ProductV1QuantInfoResponseResultItemsQuantInfoQuantsMarketingPrice": { + "type": "object", + "title": "object", + "description": "Цена на товар с учётом всех акций, которая будет указана на витрине Ozon, без учёта скидки по Ozon Карте.", + "properties": { + "price": { + "type": "string", + "description": "Цена продажи." + }, + "seller_price": { + "type": "string", + "description": "Цена, которую указал продавец." + } + } + }, + "ProductV1QuantInfoResponseResultItemsQuantInfoQuantsTexts": { + "type": "object", + "title": "object", + "description": "Описание статусов.", + "properties": { + "state_description": { + "type": "string", + "description": "Описание статуса." + }, + "state_name": { + "type": "string", + "description": "Название статуса." + }, + "state_sys_name": { + "type": "string", + "description": "Системное название статуса." + }, + "state_tooltip": { + "type": "string", + "description": "Подсказка о текущем состоянии товара." + } + } + }, + "ProductV1QuantInfoResponseResultItemsQuantInfoQuants": { + "type": "object", + "title": "object", + "properties": { + "barcodes_extended": { + "description": "Информация о штрихкодах.", + "items": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItemsQuantInfoQuantsBarcodesExtended" + } + }, + "dimensions": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItemsQuantInfoQuantsDimensions" + }, + "marketing_price": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItemsQuantInfoQuantsMarketingPrice" + }, + "min_price": { + "type": "string", + "description": "Минимальная цена, указанная продавцом." + }, + "old_price": { + "type": "string", + "description": "Зачёркнутая цена, указанная продавцом." + }, + "price": { + "type": "string", + "description": "Цена продажи, указанная продавцом." + }, + "quant_code": { + "type": "string", + "description": "Идентификатор эконом-товара." + }, + "quant_sice": { + "type": "integer", + "format": "int64", + "description": "Размер кванта." + }, + "shipment_type": { + "type": "string", + "description": "Тип доставки товара." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "statuses": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItemsQuantInfoQuantsTexts" + } + } + }, + "ProductV1QuantInfoResponseResultItemsQuantInfo": { + "type": "object", + "title": "object", + "description": "Информация о кванте.", + "properties": { + "quants": { + "description": "Список квантов.", + "items": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItemsQuantInfoQuants" + } + } + } + }, + "ProductV1QuantInfoResponseResultItems": { + "type": "object", + "title": "object", + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "quant_info": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItemsQuantInfo" + } + } + }, + "ProductV1QuantInfoResponse": { + "type": "object", + "title": "object", + "properties": { + "items": { + "type": "array", + "description": "Эконом-товары.", + "items": { + "$ref": "#/components/schemas/ProductV1QuantInfoResponseResultItems" + } + } + } + }, + "v1QuestionAnswerCreateRequest": { + "type": "object", + "title": "object", + "properties": { + "question_id": { + "type": "string", + "description": "Идентификатор вопроса." + }, + "sku": { + "type": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "text": { + "type": "string", + "description": "Текст ответа объёмом от 2 до 3000 символов." + } + }, + "required": [ + "question_id", + "sku", + "text" + ] + }, + "v1QuestionAnswerCreateDefault": { + "type": "object", + "title": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "Код ошибки." + }, + "details": { + "type": "string", + "description": "Дополнительная информация об ошибке." + }, + "message": { + "type": "string", + "description": "Описание ошибки." + } + } + }, + "v1QuestionAnswerCreateResponse": { + "type": "object", + "title": "object", + "properties": { + "answer_id": { + "type": "string", + "description": "Идентификатор ответа на вопрос." + } + } + }, + "v1QuestionAnswerDeleteRequest": { + "type": "object", + "title": "object", + "properties": { + "answer_id": { + "type": "string", + "description": "Идентификатор ответа." + }, + "sku": { + "type": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "required": [ + "answer_id", + "sku" + ] + }, + "v1QuestionAnswerListRequest": { + "type": "object", + "title": "object", + "properties": { + "last_id": { + "type": null, + "description": "Идентификатор последнего значения на странице. \n\nЕсли запрос первый, оставьте поле пустым. Для следующих значений указывайте `last_id` из ответа предыдущего запроса.\n" + }, + "question_id": { + "type": "string", + "description": "Идентификатор вопроса." + }, + "sku": { + "type": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + } + }, + "required": [ + "question_id", + "sku" + ] + }, + "v1QuestionAnswerListResponseAnswers": { + "type": "object", + "title": "object", + "properties": { + "author_name": { + "type": "string", + "description": "Автор ответа." + }, + "id": { + "type": "string", + "description": "Идентификатор ответа." + }, + "published_at": { + "type": "timestamp", + "description": "Дата публикации ответа." + }, + "question_id": { + "type": "string", + "description": "Идентификатор вопроса." + }, + "sku": { + "type": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "text": { + "type": "string", + "description": "Текст ответа." + } + } + }, + "v1QuestionAnswerListResponse": { + "type": "object", + "title": "object", + "properties": { + "answers": { + "description": "Ответы.", + "items": { + "$ref": "#/components/schemas/v1QuestionAnswerListResponseAnswers" + } + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице.\n\nЧтобы получить следующие значения, передайте полученное значение в следующем запросе в параметре `last_id`.\n" + } + } + }, + "v1QuestionChangeStatusRequest": { + "type": "object", + "title": "object", + "properties": { + "question_ids": { + "items": { + "type": "string" + }, + "description": "Идентификаторы вопросов." + }, + "status": { + "type": "string", + "description": "Статусы вопросов:\n - `NEW` — новые,\n - `VIEWED` — просмотренные,\n - `PROCESSED` — обработанные.\n" + } + }, + "required": [ + "question_ids", + "status" + ] + }, + "v1QuestionCountResponse": { + "type": "object", + "title": "object", + "properties": { + "all": { + "type": "int64", + "description": "Всего вопросов." + }, + "new": { + "type": "int64", + "description": "Новые вопросы." + }, + "processed": { + "type": "int64", + "description": "Обработанные вопросы." + }, + "unprocessed": { + "type": "int64", + "description": "Необработанные вопросы." + }, + "viewed": { + "type": "int64", + "description": "Просмотренные вопросы." + } + } + }, + "v1QuestionInfoRequest": { + "type": "object", + "title": "object", + "properties": { + "question_id": { + "type": "string", + "description": "Идентификатор вопроса" + } + }, + "required": [ + "question_id" + ] + }, + "v1QuestionInfoResponse": { + "type": "object", + "title": "object", + "properties": { + "answers_count": { + "type": "int64", + "description": "Количество ответов на вопрос." + }, + "author_name": { + "type": "string", + "description": "Автор вопроса." + }, + "id": { + "type": "string", + "description": "Идентификатор вопроса." + }, + "product_url": { + "type": "string", + "description": "Ссылка на товар." + }, + "published_at": { + "type": "timestamp", + "description": "Дата публикации вопроса." + }, + "question_link": { + "type": "string", + "description": "Ссылка на вопрос." + }, + "sku": { + "type": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "status": { + "type": "enum", + "description": "Статус вопроса:\n - `NEW` — новый,\n - `ALL` — все вопросы,\n - `VIEWED` — просмотренный,\n - `PROCESSED` — обработанный,\n - `UNPROCESSED` — необработанный.\n" + }, + "text": { + "type": "string", + "description": "Текст вопроса." + } + } + }, + "v1QuestionListRequestFilter": { + "type": "object", + "title": "object", + "description": "Фильтр.", + "properties": { + "date_from": { + "type": "string", + "format": "date-time", + "description": "Начало периода." + }, + "date_to": { + "type": "string", + "format": "date-time", + "description": "Конец периода." + }, + "status": { + "type": "string", + "description": "Статусы вопроса:\n - `NEW` — новый,\n - `ALL` — все вопросы,\n - `VIEWED` — просмотренный,\n - `PROCESSED` — обработанный,\n - `UNPROCESSED` — необработанный.\n" + } + } + }, + "v1QuestionListRequest": { + "type": "object", + "title": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/v1QuestionListRequestFilter" + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице. \n\nОставьте это поле пустым при выполнении первого запроса. Чтобы получить следующие значения, укажите `last_id` из ответа предыдущего запроса.\n" + } + } + }, + "v1QuestionListResponseQuestions": { + "type": "object", + "title": "object", + "properties": { + "answers_count": { + "type": "int64", + "description": "Количество ответов на вопрос." + }, + "author_name": { + "type": "string", + "description": "Имя автора вопроса." + }, + "id": { + "type": "string", + "description": "Идентификатор вопроса." + }, + "product_url": { + "type": "string", + "description": "Ссылка на товар." + }, + "published_at": { + "type": "timestamp", + "description": "Дата публикации вопроса." + }, + "question_link": { + "type": "string", + "description": "Ссылка на вопрос." + }, + "sku": { + "type": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "status": { + "type": "enum", + "description": "Статусы вопроса:\n - `NEW` — новый,\n - `ALL` — все вопросы,\n - `VIEWED` — просмотренный,\n - `PROCESSED` — обработанный,\n - `UNPROCESSED` — необработанный.\n" + }, + "text": { + "type": "string", + "description": "Текст вопроса." + } + } + }, + "v1QuestionListResponse": { + "type": "object", + "title": "object", + "properties": { + "questions": { + "description": "Вопросы.", + "items": { + "$ref": "#/components/schemas/v1QuestionListResponseQuestions" + } + }, + "last_id": { + "type": "string", + "description": "Идентификатор последнего значения на странице.\n\nЧтобы получить следующие значения, передайте полученное значение в следующем запросе в параметре `last_id`.\n" + } + } + }, + "v1QuestionTopSkuRequest": { + "type": "object", + "title": "object", + "properties": { + "limit": { + "type": "int64", + "description": "Количество значений в ответе: максимум — 100, минимум — 1.\n" + } + }, + "required": [ + "limit" + ] + }, + "v1QuestionTopSkuResponse": { + "type": "object", + "title": "object", + "properties": { + "sku": { + "description": "Список Идентификаторы товаров в системе Ozon — SKU.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "UploadPostingCodesRequestPostingLineExemplarInfo": { + "type": "object", + "required": [ + "exemplar_qty", + "not_available_exemplar_qty", + "sku", + "posting_number" + ], + "properties": { + "exemplar_keys": { + "type": "array", + "description": "Список кодов цифрового товара. Количество кодов должно совпадать со значением параметра `exemplar_qty`.", + "items": { + "type": "string" + } + }, + "exemplar_qty": { + "type": "integer", + "format": "int32", + "description": "Количество кодов цифрового товара, которые вы передаёте покупателю.

Сумма значений в параметрах `exemplar_qty ` и `not_available_exemplar_qty` должна равняться количеству кодов в заказе. Получите это значение в параметре `required_qty_for_digital_code` в ответе метода [/v1/posting/digital/list](#operation/ListPostingCodes)." + }, + "not_available_exemplar_qty": { + "type": "integer", + "format": "int32", + "description": "Количество кодов цифрового товара, которые вы не можете передать покупателю.

Сумма значений в параметрах `exemplar_qty ` и `not_available_exemplar_qty` должна равняться количеству кодов в заказе. Получите это значение в параметре `required_qty_for_digital_code` в ответе метода [/v1/posting/digital/list](#operation/ListPostingCodes)." + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + } + } + }, + "v1UploadPostingCodesRequest": { + "type": "object", + "properties": { + "exemplars_by_sku": { + "description": "Данные о кодах цифрового товара по SKU.", + "type": "array", + "items": { + "$ref": "#/components/schemas/UploadPostingCodesRequestPostingLineExemplarInfo" + } + }, + "posting_number": { + "description": "Номер отправления.", + "type": "string" + } + } + }, + "PostingExemplarInfoExemplarError": { + "type": "object", + "properties": { + "key": { + "description": "Значение кода цифрового товара.", + "type": "string" + }, + "message": { + "description": "Текст ошибки.", + "type": "string" + } + } + }, + "UploadPostingCodesResponsePostingExemplarInfo": { + "type": "object", + "properties": { + "failed_exemplars": { + "description": "Список кодов цифровых товаров с ошибками.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PostingExemplarInfoExemplarError" + } + }, + "received_qty": { + "description": "Количество кодов цифрового товара, которые были приняты.", + "type": "integer", + "format": "int32" + }, + "rejected_qty": { + "description": "Количество кодов цифровых товаров, которые не были приняты или переданы.", + "type": "integer", + "format": "int32" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + } + } + }, + "v1UploadPostingCodesResponse": { + "type": "object", + "properties": { + "exemplars_by_sku": { + "description": "Данные о кодах цифрового товара по SKU.", + "type": "array", + "items": { + "$ref": "#/components/schemas/UploadPostingCodesResponsePostingExemplarInfo" + } + } + } + }, + "DirEnum": { + "type": "string", + "description": "Направление сортировки:\n- `ASC` — по возрастанию,\n- `DESC` — по убыванию.\n", + "enum": [ + "ASC", + "DESC" + ] + }, + "ListPostingCodesRequestFilter": { + "type": "object", + "description": "Фильтр для поиска отправлений.", + "properties": { + "posting_number": { + "description": "Номер отправления.", + "type": "array", + "items": { + "type": "string" + } + }, + "since": { + "description": "Начало периода в формате `YYYY-MM-DD`.", + "type": "string", + "format": "date-time" + }, + "to": { + "description": "Конец периода в формате `YYYY-MM-DD`.", + "type": "string", + "format": "date-time" + } + } + }, + "ListPostingCodesRequestWithParams": { + "type": "object", + "description": "Дополнительные поля, которые нужно добавить в ответ.", + "properties": { + "analytics_data": { + "description": "Передайте `true`, чтобы добавить в ответ данные аналитики.", + "type": "boolean" + }, + "financial_data": { + "description": "Передайте `true`, чтобы добавить в ответ финансовые данные.", + "type": "boolean" + }, + "legal_info": { + "description": "Передайте `true`, чтобы добавить в ответ юридическую информацию.", + "type": "boolean" + } + } + }, + "v1ListPostingCodesRequest": { + "type": "object", + "properties": { + "dir": { + "$ref": "#/components/schemas/DirEnum" + }, + "filter": { + "$ref": "#/components/schemas/ListPostingCodesRequestFilter" + }, + "limit": { + "description": "Количество значений в ответе:\n - максимум — 1000,\n - минимум — 1.\n", + "type": "integer", + "format": "int64" + }, + "offset": { + "description": "Количество элементов, которое будет пропущено в ответе. Например, если `offset = 10`, то ответ начнётся с 11-го найденного элемента. Максимальное значение — 20000.", + "type": "integer", + "format": "int64" + }, + "with": { + "$ref": "#/components/schemas/ListPostingCodesRequestWithParams" + } + } + }, + "PostingAdditionalDataItem": { + "type": "object", + "properties": { + "key": { + "description": "Ключ дополнительного параметра.", + "type": "string" + }, + "value": { + "description": "Значение дополнительного параметра.", + "type": "string" + } + } + }, + "PostingPostingAnalyticsData": { + "type": "object", + "description": "Данные аналитики.", + "properties": { + "city": { + "description": "Город доставки. Только для отправлений rFBS и продавцов из СНГ.", + "type": "string" + }, + "delivery_type": { + "description": "Способ доставки.", + "type": "string" + }, + "is_legal": { + "description": "Признак, что получатель юридическое лицо:\n- `true` — юридическое лицо,\n- `false` — физическое лицо.\n", + "type": "boolean" + }, + "is_premium": { + "description": "Наличие подписки Premium.", + "type": "boolean" + }, + "payment_type_group_name": { + "description": "Способ оплаты:\n- `картой онлайн`,\n- `Ozon Карта`,\n- `автосписание с Ozon Карты при выдаче`,\n- `сохранённой картой при получении`,\n- `Система Быстрых Платежей`,\n- `Ozon Рассрочка`,\n- `оплата на расчётный счёт`,\n- `SberPay`.\n", + "type": "string" + }, + "region": { + "type": "string", + "description": "Регион доставки. Только для отправлений rFBS." + }, + "warehouse_id": { + "description": "Идентификатор склада.", + "type": "integer", + "format": "int64" + }, + "warehouse_name": { + "description": "Название склада.", + "type": "string" + } + } + }, + "PostingPostingFinancialData": { + "type": "object", + "description": "Финансовые данные.", + "properties": { + "cluster_from": { + "description": "Код региона, откуда отправляется заказ.", + "type": "string" + }, + "cluster_to": { + "description": "Код региона, куда доставляется заказ.", + "type": "string" + }, + "products": { + "description": "Список товаров в заказе.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PostingFinancialDataProduct" + } + } + } + }, + "PostingLegalInfo": { + "type": "object", + "description": "Юридическая информация о покупателе.", + "properties": { + "company_name": { + "description": "Название компании.", + "type": "string" + }, + "inn": { + "description": "ИНН.", + "type": "string" + }, + "kpp": { + "description": "КПП.", + "type": "string" + } + } + }, + "PostingPostingProduct": { + "type": "object", + "properties": { + "currency_code": { + "description": "Валюта ваших цен. Cовпадает с валютой, которая установлена в настройках личного кабинета.\n\nВозможные значения:\n\n- `RUB` — российский рубль,\n- `BYN` — белорусский рубль,\n- `KZT` — тенге,\n- `EUR` — евро,\n- `USD` — доллар США,\n- `CNY` — юань.\n", + "type": "string" + }, + "name": { + "description": "Название товара.", + "type": "string" + }, + "offer_id": { + "description": "Идентификатор товара в системе продавца — артикул.", + "type": "string" + }, + "price": { + "description": "Цена товара.", + "type": "string" + }, + "required_qty_for_digital_code": { + "description": "Количество кодов цифровых товаров, которое нужно передать по товару в отправлении. Передайте коды цифровых товаров с помощью метода [/v1/posting/digital/codes/upload](#operation/UploadPostingCodes).", + "type": "integer", + "format": "int32" + }, + "sku": { + "description": "Идентификатор товара в системе Ozon — SKU.", + "type": "integer", + "format": "int64" + } + } + }, + "ListPostingCodesResponsePosting": { + "type": "object", + "properties": { + "additional_data": { + "type": "array", + "description": "Дополнительные параметры.", + "items": { + "$ref": "#/components/schemas/PostingAdditionalDataItem" + } + }, + "analytics_data": { + "$ref": "#/components/schemas/PostingPostingAnalyticsData" + }, + "cancel_reason_id": { + "description": "Идентификатор причины отмены отправления.", + "type": "integer", + "format": "int64" + }, + "created_at": { + "description": "Дата и время создания отправления.", + "type": "string", + "format": "date-time" + }, + "financial_data": { + "$ref": "#/components/schemas/PostingPostingFinancialData" + }, + "in_process_at": { + "description": "Дата и время начала обработки отправления.", + "type": "string", + "format": "date-time" + }, + "legal_info": { + "$ref": "#/components/schemas/PostingLegalInfo" + }, + "order_id": { + "description": "Идентификатор заказа, к которому относится отправление.", + "type": "integer", + "format": "int64" + }, + "order_number": { + "description": "Номер заказа, к которому относится отправление.", + "type": "string" + }, + "posting_number": { + "description": "Номер отправления.", + "type": "string" + }, + "products": { + "description": "Список товаров в отправлении.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PostingPostingProduct" + } + }, + "status": { + "description": "Статус отправления: `awaiting_packaging` — ожидает упаковки.\n", + "type": "string" + }, + "waiting_deadline_for_digital_code": { + "type": "string", + "format": "date-time", + "description": "Время, до которого нужно передать коды цифровых товаров. Передайте коды цифровых товаров с помощью метода [/v1/posting/digital/codes/upload](#operation/UploadPostingCodes)." + } + } + }, + "v1ListPostingCodesResponse": { + "type": "object", + "properties": { + "result": { + "description": "Список отправлений.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ListPostingCodesResponsePosting" + } + } + } + }, + "StocksImportRequestItemStock": { + "type": "object", + "required": [ + "offer_id", + "stock" + ], + "properties": { + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "stock": { + "type": "integer", + "format": "int64", + "description": "Количество товара в наличии." + } + } + }, + "v1StocksImportRequest": { + "type": "object", + "properties": { + "stocks": { + "type": "array", + "description": "Данные об остатках.", + "items": { + "$ref": "#/components/schemas/StocksImportRequestItemStock" + } + } + } + }, + "ItemStatusError": { + "type": "object", + "properties": { + "code": { + "description": "Код ошибки.", + "type": "string" + }, + "message": { + "description": "Описание ошибки.", + "type": "string" + } + } + }, + "StocksImportResponseItemStatus": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Ошибки, которые возникли при обработке запроса.", + "items": { + "$ref": "#/components/schemas/ItemStatusError" + } + }, + "offer_id": { + "type": "string", + "description": "Идентификатор товара в системе продавца — артикул." + }, + "product_id": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе продавца — `product_id`." + }, + "sku": { + "type": "integer", + "format": "int64", + "description": "Идентификатор товара в системе Ozon — SKU." + }, + "updated": { + "type": "boolean", + "description": "`true`, если запрос выполнен успешно и остатки обновлены.\n" + } + } + }, + "v1StocksImportResponse": { + "type": "object", + "properties": { + "status": { + "type": "array", + "description": "Информация о товарах.", + "items": { + "$ref": "#/components/schemas/StocksImportResponseItemStatus" + } + } + } + } + }, + "requestBodies": { + "v1StrategyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1StrategyRequest" + } + } + }, + "required": true + }, + "v1ItemIDsRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1ItemIDsRequest" + } + } + }, + "required": true + }, + "v1PostingFbsSplitRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v1PostingFbsSplitRequest" + } + } + }, + "required": true + }, + "v2ConditionalCancellationMoveV2Request": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/v2ConditionalCancellationMoveV2Request" + } + } + }, + "required": true + }, + "QuestionAPI_GetQuestionCountBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + } + } + } +} \ No newline at end of file From 5cd3a0a79fd50c5c9d5da816bda29ebebcddf3c1 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 4 Aug 2025 20:03:57 +0400 Subject: [PATCH 27/28] Normalize operation IDs and path names to snake_case format --- .../language_converters/python/service_generator.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/openapi_python_generator/language_converters/python/service_generator.py b/src/openapi_python_generator/language_converters/python/service_generator.py index 82ff7bf..277df1d 100644 --- a/src/openapi_python_generator/language_converters/python/service_generator.py +++ b/src/openapi_python_generator/language_converters/python/service_generator.py @@ -200,9 +200,11 @@ def generate_operation_id( operation: Operation, http_op: str, path_name: Optional[str] = None ) -> str: if operation.operationId is not None: - return common.normalize_symbol(operation.operationId) + normalized = common.normalize_symbol(operation.operationId) + return snakecase(normalized) elif path_name is not None: - return common.normalize_symbol(f"{http_op}_{path_name}") + normalized = common.normalize_symbol(f"{http_op}_{path_name}") + return snakecase(normalized) else: raise Exception( f"OperationId is not defined for {http_op} of path_name {path_name} --> {operation.summary}" From 298dce4411d3e0f4bdbbd2eff1cb24f73b4fd0b4 Mon Sep 17 00:00:00 2001 From: "50bytes.dev" <50bytes.dev@gmail.com> Date: Mon, 4 Aug 2025 20:37:11 +0400 Subject: [PATCH 28/28] Fix OpenAPI data validation issues for string and array types --- src/openapi_python_generator/generate_data.py | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/openapi_python_generator/generate_data.py b/src/openapi_python_generator/generate_data.py index 31dee09..2cc6881 100644 --- a/src/openapi_python_generator/generate_data.py +++ b/src/openapi_python_generator/generate_data.py @@ -79,8 +79,28 @@ def fix_schema_recursively(obj): elif original_type == "int64": obj["format"] = "int64" - # Fix array of strings type - if obj["type"] == "array" and "items" not in obj: + # Fix string type with int64 format - should be integer + if obj["type"] == "string" and obj.get("format") == "int64": + obj["type"] = "integer" + # Keep the format for clarity + obj["format"] = "int64" + + # Fix common fields that are often numeric but defined as string + field_name = (obj.get("description") or "").lower() + if obj["type"] == "string" and ( + "sku" in field_name + or "идентификатор" in field_name + or "quantity" in field_name + or "количество" in field_name + or "count" in field_name + ): + # Use Union to allow both string and integer for flexibility + obj["anyOf"] = [{"type": "string"}, {"type": "integer"}] + # Remove the original type to avoid conflict + del obj["type"] + + # Fix array of strings type (only if type still exists) + if obj.get("type") == "array" and "items" not in obj: obj["items"] = {"type": "string"} # Fix incorrect required field format