{"openapi":"3.1.0","info":{"title":"Foxreload Public API","version":"1.0.0"},"servers":[{"url":"https://api-public.foxreload.com"}],"paths":{"/api/access/me":{"get":{"tags":["access"],"summary":"Get current API user","description":"Returns the user account authenticated by the `X-API-Key` header.","operationId":"get_me_from_api_access_me_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categories/":{"get":{"tags":["catalog"],"summary":"List categories","description":"Lists visible categories. Without `parent_id_or_slug`, returns root categories. With `parent_id_or_slug`, returns that category's direct children.","operationId":"get_categories_api_categories__get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"parent_id_or_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional parent category UUID or slug","title":"Parent Id Or Slug"},"description":"Optional parent category UUID or slug"},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OffsetPagination_PublicCategoryOut_"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categories/{category_id_or_slug}":{"get":{"tags":["catalog"],"summary":"Get category","description":"Returns one visible category by UUID or slug.","operationId":"get_category_api_categories__category_id_or_slug__get","parameters":[{"name":"category_id_or_slug","in":"path","required":true,"schema":{"type":"string","title":"Category Id Or Slug"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCategoryOut"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/":{"get":{"tags":["catalog"],"summary":"List products","description":"Lists visible products in the category identified by `category_id_or_slug`.","operationId":"get_products_api_products__get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"category_id_or_slug","in":"query","required":true,"schema":{"type":"string","description":"Category UUID or slug","title":"Category Id Or Slug"},"description":"Category UUID or slug"},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OffsetPagination_PublicProductOut_"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/search":{"get":{"tags":["catalog"],"summary":"Search products","description":"Searches visible products by text query. Pass `category_id_or_slug` to restrict results to a category.","operationId":"search_products_api_products_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Query to search by","title":"Query"},"description":"Query to search by"},{"name":"category_id_or_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional category UUID or slug","title":"Category Id Or Slug"},"description":"Optional category UUID or slug"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicProductOut"},"title":"Response Search Products Api Products Search Get"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/{product_id_or_slug}":{"get":{"tags":["catalog"],"summary":"Get product","description":"Returns one visible product by UUID or slug.","operationId":"get_product_api_products__product_id_or_slug__get","parameters":[{"name":"product_id_or_slug","in":"path","required":true,"schema":{"type":"string","title":"Product Id Or Slug"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicProductOut"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/topups/crypto/chains/":{"get":{"tags":["payments"],"summary":"List crypto chains","description":"Lists enabled crypto chains and assets that can be used to create crypto topups.","operationId":"list_crypto_chains_api_topups_crypto_chains__get","parameters":[{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoChainsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/topups/crypto/":{"post":{"tags":["payments"],"summary":"Create crypto topup","description":"Creates a crypto topup for the authenticated user.","operationId":"create_crypto_topup_api_topups_crypto__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoTopupIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoTopupOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoTopupQuoteCurrencyNotSupportedOrCryptoTopupChainNotSupportedOrCryptoTopupAssetNotSupportedOrCryptoTopupPendingDelay"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["payments"],"summary":"List crypto topups","description":"Lists the latest crypto topups owned by the authenticated user.","operationId":"list_crypto_topups_api_topups_crypto__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":1,"default":10,"title":"Limit"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CryptoTopupOut"},"title":"Response List Crypto Topups Api Topups Crypto  Get"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/topups/crypto/{topup_id}":{"get":{"tags":["payments"],"summary":"Get crypto topup","description":"Returns one crypto topup owned by the authenticated user.","operationId":"get_crypto_payment_topup_api_topups_crypto__topup_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"topup_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Topup Id"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoTopupOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/topups/fiat/":{"post":{"tags":["payments"],"summary":"Create payment topup","description":"Creates a pally or TBank topup for the authenticated user.","operationId":"create_fiat_topup_api_topups_fiat__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiatTopupIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiatTopupOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiatTopupProviderNotSupportedOrFiatTopupCurrencyNotSupported"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["payments"],"summary":"List payment topups","description":"Lists the latest pally/TBank topups owned by the authenticated user.","operationId":"list_fiat_topups_api_topups_fiat__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":1,"default":10,"title":"Limit"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FiatTopupOut"},"title":"Response List Fiat Topups Api Topups Fiat  Get"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/topups/fiat/{topup_id}":{"get":{"tags":["payments"],"summary":"Get payment topup","description":"Returns one pally/TBank topup owned by the authenticated user.","operationId":"get_fiat_topup_api_topups_fiat__topup_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"topup_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Topup Id"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiatTopupOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/":{"get":{"tags":["ordering"],"summary":"List Orders","operationId":"list_orders_api_orders__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"statuses","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/CommaSeparatedValue_OrderStatus_"},{"type":"null"}],"title":"Statuses"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OffsetPagination_OrderSummaryOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ordering"],"summary":"Create public API order","description":"Creates a wholesale order for the user authenticated by `X-API-Key`. Items accept `itemId`, `quantity`, optional `totalPrice`, and optional fulfillment `note` data.","operationId":"create_order_api_orders__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOrderCreateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidOrderItemOrOfferPriceNotMatchedOrOfferNotEnoughQuantity"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/{order_id}/pay":{"post":{"tags":["ordering"],"summary":"Create public API order payment","description":"Creates or refreshes a payment for a wholesale order owned by the API key user.\n\nOnly user balance can be used for wholesale orders.","operationId":"create_new_order_payment_api_orders__order_id__pay_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Order Id"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPaymentOut"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionDenied"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Not Found"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceNotEnoughOrOrderPaymentNotPossible"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/{order_id}":{"get":{"tags":["ordering"],"summary":"Get Order","operationId":"get_order_api_orders__order_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Order Id"}},{"name":"x-language","in":"header","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"title":"X-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AttributeDefinition":{"properties":{"name":{"type":"string","title":"Name","description":"Attribute key used in the `attributes` object"},"type":{"$ref":"#/components/schemas/AttributeType","description":"Expected value type"},"description":{"type":"string","title":"Description","description":"Human readable attribute description"},"required":{"type":"boolean","title":"Required","description":"Whether integrations should provide this attribute"}},"type":"object","required":["name","type","description","required"],"title":"AttributeDefinition","description":"Definition of a custom category/product attribute."},"AttributeType":{"type":"string","enum":["bool","int","float","str"],"title":"AttributeType"},"AttributeValue":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"boolean"},{"type":"number"},{"type":"null"}]},"BalanceNotEnough":{"properties":{"detail":{"type":"string","const":"Balance is not enough to pay for the order.","title":"Detail"},"code":{"type":"string","const":"BALANCE_NOT_ENOUGH","title":"Code"}},"type":"object","required":["detail","code"],"title":"BalanceNotEnough"},"BalanceNotEnoughOrOrderPaymentNotPossible":{"anyOf":[{"$ref":"#/components/schemas/BalanceNotEnough"},{"$ref":"#/components/schemas/OrderPaymentNotPossible"}],"title":"BalanceNotEnoughOrOrderPaymentNotPossible"},"BalanceTopupStatus":{"type":"string","enum":["pending","succeeded","expired","failed"],"title":"BalanceTopupStatus"},"CommaSeparatedValue_OrderStatus_":{"items":{"$ref":"#/components/schemas/OrderStatus"},"type":"array"},"CryptoAsset":{"type":"string","enum":["btc","eth","bnb","matic","sol","sui","ton","trx","usdc","usdt"],"title":"CryptoAsset","description":"Common asset ids exposed across chains.\n\nThe microservice scopes assets per chain (e.g. USDC on Ethereum vs on\nSolana are distinct), but the id strings match. Stablecoins are pegged\n1:1 to USD by the service."},"CryptoAssetInfoOut":{"properties":{"id":{"type":"string","title":"Id","description":"Asset ID to pass as `asset` when creating a topup"},"symbol":{"type":"string","title":"Symbol","description":"Display symbol"},"decimals":{"type":"integer","title":"Decimals","description":"Asset decimals"},"isStablecoin":{"type":"boolean","title":"Isstablecoin","description":"Whether the asset is a stablecoin"},"tokenAddress":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tokenaddress","description":"Token contract address, if the asset is a token"}},"type":"object","required":["id","symbol","decimals","isStablecoin","tokenAddress"],"title":"CryptoAssetInfoOut","description":"Crypto asset available for topups."},"CryptoChain":{"type":"string","enum":["bitcoin","ethereum","bsc","polygon","base","solana","sui","ton","tron"],"title":"CryptoChain"},"CryptoChainInfoOut":{"properties":{"id":{"type":"string","title":"Id","description":"Chain ID to pass as `chain` when creating a topup"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether the chain currently accepts new topups"},"assets":{"items":{"$ref":"#/components/schemas/CryptoAssetInfoOut"},"type":"array","title":"Assets","description":"Assets accepted on this chain"},"minConfirmations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minconfirmations","description":"Minimum confirmations required for crediting"}},"type":"object","required":["id","enabled","assets","minConfirmations"],"title":"CryptoChainInfoOut","description":"Crypto chain available for topups."},"CryptoChainsOut":{"properties":{"chains":{"items":{"$ref":"#/components/schemas/CryptoChainInfoOut"},"type":"array","title":"Chains","description":"Available crypto chains"}},"type":"object","required":["chains"],"title":"CryptoChainsOut","description":"Enabled crypto chains and assets."},"CryptoEvmCallOut":{"properties":{"chainId":{"type":"integer","title":"Chainid","description":"EVM chain ID"},"to":{"type":"string","title":"To","description":"Destination contract or wallet address"},"value":{"type":"string","title":"Value","description":"Native token amount encoded for the transaction"},"data":{"type":"string","title":"Data","description":"Hex encoded call data"}},"type":"object","required":["chainId","to","value","data"],"title":"CryptoEvmCallOut","description":"EVM transaction call details for wallets that need raw call data."},"CryptoTopupAssetNotSupported":{"properties":{"detail":{"type":"string","const":"Crypto asset is not supported for the selected chain.","title":"Detail"},"code":{"type":"string","const":"CRYPTO_TOPUP_ASSET_NOT_SUPPORTED","title":"Code"}},"type":"object","required":["detail","code"],"title":"CryptoTopupAssetNotSupported"},"CryptoTopupChainNotSupported":{"properties":{"detail":{"type":"string","const":"Crypto chain is not supported for topups.","title":"Detail"},"code":{"type":"string","const":"CRYPTO_TOPUP_CHAIN_NOT_SUPPORTED","title":"Code"}},"type":"object","required":["detail","code"],"title":"CryptoTopupChainNotSupported"},"CryptoTopupIn":{"properties":{"chain":{"$ref":"#/components/schemas/CryptoChain","description":"Crypto chain to perform top up on, only supported chains are accepted"},"asset":{"$ref":"#/components/schemas/CryptoAsset","description":"Crypto asset to perform top up on, either chain native or stablecoin"},"balanceCurrency":{"$ref":"#/components/schemas/TopupCurrency","description":"Currency of the balance to top up, only rub or usd are supported"},"quoteAmount":{"type":"integer","maximum":1000000.0,"exclusiveMinimum":1.0,"title":"Quoteamount","description":"Amount to top up in the balance currency"},"withTxPayload":{"type":"boolean","title":"Withtxpayload","description":"Whether to include transaction payload if supported by chain","default":false}},"type":"object","required":["chain","asset","balanceCurrency","quoteAmount"],"title":"CryptoTopupIn","description":"Create a crypto topup for the authenticated user."},"CryptoTopupOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Topup ID"},"paymentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paymentid","description":"External payment ID"},"status":{"$ref":"#/components/schemas/BalanceTopupStatus","description":"Internal balance topup status"},"balanceCurrency":{"$ref":"#/components/schemas/Currency","description":"Balance currency that will be credited"},"quoteAmount":{"$ref":"#/components/schemas/NormalizedDecimal-Output","description":"Balance amount requested by the user"},"rate":{"$ref":"#/components/schemas/NormalizedDecimal-Output","description":"payment_currency per 1 balance_currency at create time"},"chain":{"$ref":"#/components/schemas/CryptoChain","description":"Crypto chain"},"asset":{"type":"string","title":"Asset","description":"Crypto asset"},"address":{"type":"string","title":"Address","description":"Deposit address"},"tokenAddress":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tokenaddress","description":"Token contract address, if applicable"},"amountToSend":{"$ref":"#/components/schemas/NormalizedDecimal-Output","description":"Exact crypto amount to send"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat","description":"Time when the deposit quote expires"},"txPayload":{"anyOf":[{"$ref":"#/components/schemas/CryptoTxPayloadOut"},{"type":"null"}],"description":"Optional wallet transaction payload"}},"type":"object","required":["id","paymentId","status","balanceCurrency","quoteAmount","rate","chain","asset","address","tokenAddress","amountToSend","expiresAt"],"title":"CryptoTopupOut","description":"Crypto topup details."},"CryptoTopupPendingDelay":{"properties":{"detail":{"type":"string","const":"Please wait 5 minutes before creating another pending crypto topup.","title":"Detail"},"code":{"type":"string","const":"CRYPTO_TOPUP_PENDING_DELAY","title":"Code"}},"type":"object","required":["detail","code"],"title":"CryptoTopupPendingDelay"},"CryptoTopupQuoteCurrencyNotSupported":{"properties":{"detail":{"type":"string","const":"Balance currency is not supported for crypto topups.","title":"Detail"},"code":{"type":"string","const":"CRYPTO_TOPUP_QUOTE_CURRENCY_NOT_SUPPORTED","title":"Code"}},"type":"object","required":["detail","code"],"title":"CryptoTopupQuoteCurrencyNotSupported"},"CryptoTopupQuoteCurrencyNotSupportedOrCryptoTopupChainNotSupportedOrCryptoTopupAssetNotSupportedOrCryptoTopupPendingDelay":{"anyOf":[{"$ref":"#/components/schemas/CryptoTopupQuoteCurrencyNotSupported"},{"$ref":"#/components/schemas/CryptoTopupChainNotSupported"},{"$ref":"#/components/schemas/CryptoTopupAssetNotSupported"},{"$ref":"#/components/schemas/CryptoTopupPendingDelay"}],"title":"CryptoTopupQuoteCurrencyNotSupportedOrCryptoTopupChainNotSupportedOrCryptoTopupAssetNotSupportedOrCryptoTopupPendingDelay"},"CryptoTxPayloadOut":{"properties":{"kind":{"type":"string","title":"Kind","description":"Payload type returned by the crypto payments provider"},"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri","description":"Wallet deep link or payment URI, when available"},"evmCall":{"anyOf":[{"$ref":"#/components/schemas/CryptoEvmCallOut"},{"type":"null"}],"description":"EVM call payload, when available"}},"type":"object","required":["kind"],"title":"CryptoTxPayloadOut","description":"Optional wallet transaction payload for a crypto topup."},"Currency":{"type":"string","enum":["rub","usd","eur","ton"],"title":"Currency"},"FiatTopupCurrencyNotSupported":{"properties":{"detail":{"type":"string","const":"Balance currency is not supported for payment topups.","title":"Detail"},"code":{"type":"string","const":"FIAT_TOPUP_CURRENCY_NOT_SUPPORTED","title":"Code"}},"type":"object","required":["detail","code"],"title":"FiatTopupCurrencyNotSupported"},"FiatTopupIn":{"properties":{"paymentProvider":{"$ref":"#/components/schemas/PaymentProvider","description":"Payment provider to use for the topup"},"balanceCurrency":{"$ref":"#/components/schemas/TopupCurrency","description":"Currency of the balance to top up, only rub or usd are supported"},"quoteAmount":{"type":"integer","maximum":1000000.0,"exclusiveMinimum":1.0,"title":"Quoteamount","description":"Amount to top up in the balance currency"},"paymentCurrency":{"anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}],"description":"Currency to charge the user in. Defaults to the balance currency. When it differs from the balance currency we convert via the rate service."},"returnUrl":{"anyOf":[{"type":"string","minLength":1,"format":"uri"},{"type":"null"}],"title":"Returnurl","description":"URL to redirect the user after payment"}},"type":"object","required":["paymentProvider","balanceCurrency","quoteAmount"],"title":"FiatTopupIn","description":"Create a balance topup through a regular payment provider."},"FiatTopupOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Topup ID"},"paymentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paymentid","description":"External payment ID"},"status":{"$ref":"#/components/schemas/BalanceTopupStatus","description":"Internal balance topup status"},"balanceCurrency":{"$ref":"#/components/schemas/Currency","description":"Balance currency that will be credited"},"quoteAmount":{"$ref":"#/components/schemas/NormalizedDecimal-Output","description":"Balance amount requested by the user"},"rate":{"$ref":"#/components/schemas/NormalizedDecimal-Output","description":"payment_currency per 1 balance_currency at create time"},"provider":{"$ref":"#/components/schemas/PaymentProvider","description":"Payment provider"},"paymentCurrency":{"$ref":"#/components/schemas/Currency","description":"Currency charged to the user"},"paymentAmount":{"$ref":"#/components/schemas/NormalizedDecimal-Output","description":"Amount charged in payment_currency"},"confirmationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confirmationurl","description":"Payment page URL"}},"type":"object","required":["id","paymentId","status","balanceCurrency","quoteAmount","rate","provider","paymentCurrency","paymentAmount","confirmationUrl"],"title":"FiatTopupOut","description":"Pally/TBank topup details."},"FiatTopupProviderNotSupported":{"properties":{"detail":{"type":"string","const":"Payment provider is not supported for balance topups.","title":"Detail"},"code":{"type":"string","const":"FIAT_TOPUP_PROVIDER_NOT_SUPPORTED","title":"Code"}},"type":"object","required":["detail","code"],"title":"FiatTopupProviderNotSupported"},"FiatTopupProviderNotSupportedOrFiatTopupCurrencyNotSupported":{"anyOf":[{"$ref":"#/components/schemas/FiatTopupProviderNotSupported"},{"$ref":"#/components/schemas/FiatTopupCurrencyNotSupported"}],"title":"FiatTopupProviderNotSupportedOrFiatTopupCurrencyNotSupported"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InvalidOrderItem":{"properties":{"detail":{"type":"string","const":"Received invalid order item","title":"Detail"},"code":{"type":"string","const":"INVALID_ORDER_ITEM","title":"Code"}},"type":"object","required":["detail","code"],"title":"InvalidOrderItem"},"InvalidOrderItemOrOfferPriceNotMatchedOrOfferNotEnoughQuantity":{"anyOf":[{"$ref":"#/components/schemas/InvalidOrderItem"},{"$ref":"#/components/schemas/OfferPriceNotMatched"},{"$ref":"#/components/schemas/OfferNotEnoughQuantity"}],"title":"InvalidOrderItemOrOfferPriceNotMatchedOrOfferNotEnoughQuantity"},"Language":{"type":"string","enum":["ru","en"],"title":"Language"},"NormalizedDecimal-Input":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}]},"NormalizedDecimal-Output":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},"NotAuthenticated":{"properties":{"detail":{"type":"string","const":"User not authenticated","title":"Detail"},"code":{"type":"string","const":"NOT_AUTHENTICATED","title":"Code"}},"type":"object","required":["detail","code"],"title":"NotAuthenticated"},"NotFound":{"properties":{"detail":{"type":"string","const":"Requested resource not found","title":"Detail"},"code":{"type":"string","const":"NOT_FOUND","title":"Code"}},"type":"object","required":["detail","code"],"title":"NotFound"},"OfferNotEnoughQuantity":{"properties":{"detail":{"type":"string","const":"Not enough quantity in offer","title":"Detail"},"code":{"type":"string","const":"OFFER_NOT_ENOUGH_QUANTITY","title":"Code"}},"type":"object","required":["detail","code"],"title":"OfferNotEnoughQuantity"},"OfferPriceNotMatched":{"properties":{"detail":{"type":"string","const":"Offer price does not match expected price","title":"Detail"},"code":{"type":"string","const":"OFFER_PRICE_NOT_MATCHED","title":"Code"}},"type":"object","required":["detail","code"],"title":"OfferPriceNotMatched"},"OffsetPagination_OrderSummaryOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrderSummaryOut"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","limit","offset","total"],"title":"OffsetPagination","description":"Container for data returned using limit/offset pagination."},"OffsetPagination_PublicCategoryOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicCategoryOut"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","limit","offset","total"],"title":"OffsetPagination","description":"Container for data returned using limit/offset pagination."},"OffsetPagination_PublicProductOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicProductOut"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","limit","offset","total"],"title":"OffsetPagination","description":"Container for data returned using limit/offset pagination."},"OrderCancelReason":{"type":"string","enum":["payment_failure","payment_expiration","user_request"],"title":"OrderCancelReason"},"OrderItemOut":{"properties":{"product":{"$ref":"#/components/schemas/OrderProductOut","description":"Information about product"},"quantity":{"type":"integer","title":"Quantity","description":"Quantity of items bought","examples":["5"]},"externalData":{"items":{"type":"string"},"type":"array","title":"Externaldata","description":"Codes and other relevant data to receive items","examples":[["Code1","Code2","Code3","Code4","Code5"]]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error occurred during item processing","examples":["Пользователь @test не найден, либо вы заблокировали аккаунт отправителя."]}},"type":"object","required":["product","quantity","externalData","error"],"title":"OrderItemOut"},"OrderOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"ID of the order"},"price":{"$ref":"#/components/schemas/NormalizedDecimal-Output","examples":["1100"]},"isMock":{"type":"boolean","title":"Ismock","description":"Whether order is mocked, item codes in this case will also be mocks"},"status":{"$ref":"#/components/schemas/OrderStatus","description":"Order status"},"cancelReason":{"anyOf":[{"$ref":"#/components/schemas/OrderCancelReason"},{"type":"null"}],"description":"Order cancellation reason if it was cancelled"},"createdAt":{"type":"string","format":"date-time","title":"Createdat","description":"Time when order was created"},"items":{"items":{"$ref":"#/components/schemas/OrderItemOut"},"type":"array","title":"Items","description":"Ordered items"},"paymentExpiresAt":{"type":"string","format":"date-time","title":"Paymentexpiresat","readOnly":true}},"type":"object","required":["id","price","isMock","status","cancelReason","createdAt","items","paymentExpiresAt"],"title":"OrderOut","description":"Detailed order response."},"OrderPaymentNotPossible":{"properties":{"detail":{"type":"string","const":"A payment can not be created for this order.","title":"Detail"},"code":{"type":"string","const":"ORDER_PAYMENT_NOT_POSSIBLE","title":"Code"}},"type":"object","required":["detail","code"],"title":"OrderPaymentNotPossible"},"OrderPaymentOut":{"properties":{"id":{"type":"string","title":"Id","description":"ID of the payment"},"confirmationToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confirmationtoken","description":"Confirmation token to use in yookassa"},"confirmationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confirmationurl","description":"Confirmation URL to use in yookassa"},"returnUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Returnurl","description":"URL to return to upon payment completion"}},"type":"object","required":["id","confirmationToken","confirmationUrl","returnUrl"],"title":"OrderPaymentOut","description":"Payment creation response."},"OrderProductOut":{"properties":{"id":{"type":"string","title":"Id","description":"ID of the product"},"name":{"type":"string","title":"Name","description":"Name of the product","examples":["GTA V Key | Global | Rockstar Club "]},"userGuide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Userguide","description":"Guide on how to use the product","examples":["Откройте сайт, вставьте код."]},"attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"boolean"}]},"type":"object","title":"Attributes","description":"Custom product attributes"},"isService":{"type":"boolean","title":"Isservice","description":"Whether product is a service provided by the marketplace"},"categoryId":{"type":"string","format":"uuid","title":"Categoryid","description":"Product category ID"}},"type":"object","required":["id","name","userGuide","attributes","isService","categoryId"],"title":"OrderProductOut"},"OrderStatus":{"type":"string","enum":["active","cancelled","paid","processing","failed","completed"],"title":"OrderStatus"},"OrderSummaryOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"ID of the order"},"price":{"$ref":"#/components/schemas/NormalizedDecimal-Output","examples":["1100"]},"isMock":{"type":"boolean","title":"Ismock","description":"Whether order is mocked, item codes in this case will also be mocks"},"status":{"$ref":"#/components/schemas/OrderStatus","description":"Order status"},"cancelReason":{"anyOf":[{"$ref":"#/components/schemas/OrderCancelReason"},{"type":"null"}],"description":"Order cancellation reason if it was cancelled"},"createdAt":{"type":"string","format":"date-time","title":"Createdat","description":"Time when order was created"},"paymentExpiresAt":{"type":"string","format":"date-time","title":"Paymentexpiresat","readOnly":true}},"type":"object","required":["id","price","isMock","status","cancelReason","createdAt","paymentExpiresAt"],"title":"OrderSummaryOut"},"PaymentProvider":{"type":"string","enum":["yookassa","pally","tbank"],"title":"PaymentProvider"},"PermissionDenied":{"properties":{"detail":{"type":"string","const":"Permission denied","title":"Detail"},"code":{"type":"string","const":"PERMISSION_DENIED","title":"Code"}},"type":"object","required":["detail","code"],"title":"PermissionDenied"},"PublicCategoryOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Category ID"},"name":{"type":"string","title":"Name","description":"Localized category name"},"slug":{"type":"string","title":"Slug","description":"Stable category slug usable in path and query parameters"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Localized category description"},"bestOfferPrice":{"anyOf":[{"$ref":"#/components/schemas/NormalizedDecimal-Output"},{"type":"null"}],"description":"Lowest currently available offer price in this category"},"attributes":{"additionalProperties":{"$ref":"#/components/schemas/AttributeValue"},"type":"object","title":"Attributes","description":"Custom category attributes"},"attributeDefinitions":{"items":{"$ref":"#/components/schemas/AttributeDefinition"},"type":"array","title":"Attributedefinitions","description":"Attributes that products or order notes may use in this category"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Category tags"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parentid","description":"Parent category ID, or null for root categories"},"hasProducts":{"type":"boolean","title":"Hasproducts","description":"Whether this category contains visible products"}},"type":"object","required":["id","name","slug","description","bestOfferPrice","attributes","attributeDefinitions","tags","parentId","hasProducts"],"title":"PublicCategoryOut","description":"Category schema exposed by the public API."},"PublicOrderCreateIn":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicOrderItemIn"},"type":"array","maxItems":10,"minItems":1,"title":"Items","description":"Items to buy"},"isMock":{"type":"boolean","title":"Ismock","description":"Whether order is a mock, offers will be processed as if they are from mock marketplace","default":false}},"type":"object","required":["items"],"title":"PublicOrderCreateIn","description":"Public API order creation payload."},"PublicOrderItemIn":{"properties":{"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","description":"Number of items to buy"},"totalPrice":{"anyOf":[{"$ref":"#/components/schemas/NormalizedDecimal-Input"},{"type":"null"}],"description":"Expected total price for this order item.\nProvided values are validated against selected offers. If omitted, product orders use Product.price when available."},"note":{"anyOf":[{"additionalProperties":true,"type":"object","maxProperties":10},{"type":"null"}],"title":"Note","description":"Additional data required by the offer"},"itemId":{"type":"string","title":"Itemid","description":"TypeID of the product to buy.","examples":["product_01krgfgww8eth9xvvysd6y7r4j"]}},"type":"object","required":["quantity","itemId"],"title":"PublicOrderItemIn","description":"Order item input accepted by the public API."},"PublicProductOut":{"properties":{"id":{"type":"string","title":"Id","description":"Product ID"},"name":{"type":"string","title":"Name","description":"Localized product name"},"slug":{"type":"string","title":"Slug","description":"Stable product slug usable in path parameters"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Localized product description"},"attributes":{"additionalProperties":{"$ref":"#/components/schemas/AttributeValue"},"type":"object","title":"Attributes","description":"Custom product attributes"},"price":{"anyOf":[{"$ref":"#/components/schemas/NormalizedDecimal-Output"},{"type":"null"}],"description":"Resolved app/public API Product.price."},"quantity":{"type":"integer","title":"Quantity","description":"Currently available quantity","default":0},"orderMinQuantity":{"type":"integer","title":"Orderminquantity","description":"Minimum quantity accepted for an order item","default":1},"orderMaxQuantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ordermaxquantity","description":"Maximum quantity accepted for an order item"}},"type":"object","required":["id","name","slug","description","attributes","price"],"title":"PublicProductOut","description":"Product schema exposed by the public API."},"TopupCurrency":{"type":"string","enum":["rub","usd"],"title":"TopupCurrency"},"UserOut":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"User email address, if one is connected to the account"},"telegramId":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Telegramid","description":"Telegram user ID, if one is connected"},"telegramUsername":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegramusername","description":"Telegram username, if one is connected"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firstname","description":"User first name, if known"},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastname","description":"User last name, if known"},"isActive":{"type":"boolean","title":"Isactive","description":"Whether the account can use authenticated APIs"},"isSuper":{"type":"boolean","title":"Issuper","description":"Whether the account has superuser privileges"}},"type":"object","required":["email","telegramId","telegramUsername","firstName","lastName","isActive","isSuper"],"title":"UserOut","description":"Authenticated user profile returned by `/access/me`."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"tags":[{"name":"access","description":"App access"},{"name":"catalog","description":"Digital market catalog: categories, products, offers"},{"name":"catalog","description":"Digital market catalog: categories, products, offers"},{"name":"payments","description":"Payment management"},{"name":"ordering","description":"Order management"}]}