Error: "code":-1013,"msg":"Filter failure: NOTIONAL"

Hi guys,
I try to convert LTC to EUR via BTC Transmuter, but it ends up with the following error:

Could not place order because {"code":-1013,"msg":"Filter failure: NOTIONAL"}. Order details: {"MarketSymbol":"LTCEUR","Amount":0.03123871,"Price":0.0,"StopPrice":0.0,"IsBuy":false,"IsMargin":false,"OrderId":null,"ClientOrderId":null,"ShouldRoundAmount":false,"OrderType":1,"IsPostOnly":null,"ExtraParameters":{}}

In the Binance spot market it shows me 0.26826657 LTC, means there should be enough balance available to convert 0.03123871 LTC to EUR.
What could cause this error?

This NOTIONAL error is complaining about the total notional value of the order is below min requirement of the symbol. You could find more details of the symbol filters at the document:

https://binance-docs.github.io/apidocs/spot/en/#filters

For the symbol definitions and details, you could find them from the endpoint /exchangeInfo.

Should not the error report then MIN_NOTIONAL in this case?

I found the following info in /exchangeInfo for BTCEUR:

    {
      "symbol": "LTCEUR",
      "status": "TRADING",
      "baseAsset": "LTC",
      "baseAssetPrecision": 8,
      "quoteAsset": "EUR",
      "quotePrecision": 8,
      "quoteAssetPrecision": 8,
      "baseCommissionPrecision": 8,
      "quoteCommissionPrecision": 8,
      "orderTypes": [
        "LIMIT",
        "LIMIT_MAKER",
        "MARKET",
        "STOP_LOSS_LIMIT",
        "TAKE_PROFIT_LIMIT"
      ],
      "icebergAllowed": true,
      "ocoAllowed": true,
      "quoteOrderQtyMarketAllowed": true,
      "allowTrailingStop": true,
      "cancelReplaceAllowed": true,
      "isSpotTradingAllowed": true,
      "isMarginTradingAllowed": false,
      "filters": [
        {
          "filterType": "PRICE_FILTER",
          "minPrice": "0.01000000",
          "maxPrice": "100000.00000000",
          "tickSize": "0.01000000"
        },
        {
          "filterType": "LOT_SIZE",
          "minQty": "0.00100000",
          "maxQty": "900000.00000000",
          "stepSize": "0.00100000"
        },
        { "filterType": "ICEBERG_PARTS", "limit": 10 },
        {
          "filterType": "MARKET_LOT_SIZE",
          "minQty": "0.00000000",
          "maxQty": "582.16467916",
          "stepSize": "0.00000000"
        },
        {
          "filterType": "TRAILING_DELTA",
          "minTrailingAboveDelta": 10,
          "maxTrailingAboveDelta": 2000,
          "minTrailingBelowDelta": 10,
          "maxTrailingBelowDelta": 2000
        },
        {
          "filterType": "PERCENT_PRICE_BY_SIDE",
          "bidMultiplierUp": "5",
          "bidMultiplierDown": "0.2",
          "askMultiplierUp": "5",
          "askMultiplierDown": "0.2",
          "avgPriceMins": 5
        },
        {
          "filterType": "NOTIONAL",
          "minNotional": "5.00000000",
          "applyMinToMarket": true,
          "maxNotional": "9000000.00000000",
          "applyMaxToMarket": false,
          "avgPriceMins": 5
        },
        { "filterType": "MAX_NUM_ORDERS", "maxNumOrders": 200 },
        { "filterType": "MAX_NUM_ALGO_ORDERS", "maxNumAlgoOrders": 5 }
      ],
      "permissions": [
        "SPOT",
        "TRD_GRP_005",
        "TRD_GRP_009",
        "TRD_GRP_010",
        "TRD_GRP_011",
        "TRD_GRP_012",
        "TRD_GRP_013",
        "TRD_GRP_014",
        "TRD_GRP_015",
        "TRD_GRP_016"
      ],
      "defaultSelfTradePreventionMode": "EXPIRE_MAKER",
      "allowedSelfTradePreventionModes": [
        "EXPIRE_TAKER",
        "EXPIRE_MAKER",
        "EXPIRE_BOTH"
      ]
    },

Does "minNotional": "5.00000000" mean, that the minimum amount is 5.0 LTC is which I can trade via the API?
If yes, why is that minimum and how can I lower down this amount?

I was able to transfer 0.26826657 LTC to EUR manually without problems.

Sorry you can’t change the amount, it’s required from exchange.

I actually want to create a webstore which sells small digital products for 1-5 EUR via LTC and each order should create a similar LTC/EUR conversation. I don’t want to acumulate a higher amounts and change it then, each order should get converted right away.

I can manually convert that small amount via the Binance website, but not via the API?
Why not to allow to do the same via the API what the user is allowed to do manually?
What is the purpose of this restriction?

The UI convert may follow different logic that I’m not familiar with, however the API server require requests to follow this filter. If you are testing the trading bot with API, please feel free to trial on testnet. https://testnet.binance.vision/

1 Like