> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whitebit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Order Parameter Rules

> Defines unsupported parameter combinations for order requests and explains related validation errors.

## Overview

The guide describes parameter combinations the API does not support and explains how to resolve related errors.

***

## Retail Price Improvement (RPI) and IOC

RPI orders use post-only behavior by design. An RPI order does not support the IOC flag.

### Issue

A request sets both `rpi=true` and `ioc=true`.

### Result

The API rejects the request and returns error code `40`.

### Fix

Remove `ioc` when using `rpi`, or disable `rpi` when IOC behavior is required.

***

## RPI flag without account permission

Sending `rpi=true` from a private-API source requires the [RPI](/glossary#retail-price-improvement-rpi) flag to be enabled on the account.

### Issue

A request sets `rpi=true` from a private-API source, and the account does not have the RPI flag enabled.

### Result

The API rejects the request and returns error code `43`.

### Fix

Contact the account manager to enable the RPI flag. After enablement, retry the request.

***

## RPI and retail flag

The [Retail flag](/glossary#retail-flag) designates an order as a retail-source taker. The [RPI](/glossary#retail-price-improvement-rpi) flag designates an order as a post-only RPI maker. The two flags cannot be combined on a single order.

### Issue

A request to [`POST /api/v4/order/new`](/api-reference/spot-trading/create-limit-order) or [`POST /api/v4/order/bulk`](/api-reference/spot-trading/bulk-limit-order) sets both `rpi=true` and `retail=true`.

### Result

The API rejects the request and returns error code `41`. The error payload is `{"retail": ["api.tradeErrors.flagsCantBeCombined.rpiRetail"]}`.

### Fix

Set only one of `rpi` or `retail` per order. Set `rpi=true` to provide RPI maker liquidity; set `retail=true` to take RPI liquidity.

***

## Retail flag without account permission

Sending `retail=true` from a private-API source requires the [Retail flag](/glossary#retail-flag) to be enabled on the account.

### Issue

A request to [`POST /api/v4/order/new`](/api-reference/spot-trading/create-limit-order) or [`POST /api/v4/order/bulk`](/api-reference/spot-trading/bulk-limit-order) sets `retail=true` from a private-API source, and the account does not have the Retail flag enabled.

### Result

The API rejects the request and returns error code `42`. The error payload is `{"retail": ["api.validation.retail.not_allowed"]}`.

### Fix

Contact the account manager to enable the Retail flag. After enablement, retry the request.
