| — | The x-user-ip header must be set to the end-user IP address | 400 Bad Request | Invalid IP address | Use a valid IP address in the x-user-ip header. |
| BAD_USER_INPUT | Invalid receiving address | 400 Bad Request | settleAddress is invalid | Use the correct settleAddress that aligns to the settleCoin. In case of BTC as settleCoin, use on-chain addresses only. |
| BAD_USER_INPUT | Invalid refundDestination | 400 Bad Request | refundAddress is invalid | Use a valid refundAddress that aligns with the depositCoin. In case of BTC as depositCoin, use on-chain addresses only. |
| BAD_USER_INPUT | This refund address belongs to SideShift.ai | 400 Bad Request | refundAddress being used is the example address or owned by SideShift.ai | Use a valid refundAddress that you own. |
| BAD_USER_INPUT | This settle address belongs to SideShift.ai | 400 Bad Request | settleAddress being used is the example address or owned by SideShift.ai | Use a valid settleAddress that you own. |
| BAD_USER_INPUT | Unknown affiliateId | 400 Bad Request | Invalid affiliateId was used in variable shift | Use the affiliateId from your account found at https://sideshift.ai/account. |
| BAD_USER_INPUT | Quote has different affiliateId than input | 400 Bad Request | AffiliateId used in fixed shift creation differs from the quote request | Use the same affiliateId for fixed shift creation as the one used in the quote request. |
| BAD_USER_INPUT | Quote has already expired. Request a new quote. | 400 Bad Request | quoteId is no longer valid for a fixed shift after expiration time | Request a new quote. |
| BAD_USER_INPUT | Invalid "affiliateId" | 400 Bad Request | Invalid affiliateId was used in the quote request | Use the affiliateId from your account found at https://sideshift.ai/account. |
| BAD_USER_INPUT | depositAmount must be greater than zero | 400 Bad Request | depositAmount is 0 or less | Use a value greater than 0. |
| METHOD_NOT_FOUND | Method XX/XX not found | 400 Bad Request | Either the values for depositCoin and depositNetwork or settleCoin and settleNetwork do not belong to a supported method | Ensure that the coin supports the network being used, and vice versa. See /v2/coins for a list of supported cryptocurrencies and their respective networks. |
| BAD_USER_INPUT | Bad request: Invalid parameters: list of invalid parameters | 400 Bad Request | Invalid parameter(s) | Ensure all parameters are correctly formatted and valid |
| SESSION_REQUIRED | Do not use the example affiliateId and x-sideshift-secret header from the documentation. Use your own from https://sideshift.ai/account | 401 Unauthorized | Example affiliateId or x-sideshift-secret was used | Use your account's actual affiliateId and x-sideshift-secret from https://sideshift.ai/account. |
| BAD_USER_INPUT | You have too many open orders. Cancel some, use the existing ones, or wait. To receive a higher open order limit, message https://t.me/sideshiftai_devs | 403 Forbidden | Executed too many order requests | Cancel some, use the existing ones, or wait. To receive a higher open order limit, message https://t.me/sideshiftai_devs. |
| ACCESS_DENIED | Access denied. See https://sideshift.ai/access-denied | 403 Forbidden | IP address being used in the x-user-ip header is not allowed | For a list of prohibited jurisdictions, please check out https://help.sideshift.ai/en/articles/2874595-why-am-i-blocked-from-using-sideshift-ai. |
| NOT_FOUND | Account not found | 404 Not Found | x-sideshift-secret is invalid | Use your account's private key as the x-sideshift-secret from https://sideshift.ai/account. |
| NOT_FOUND | Order not found | 404 Not Found | Invalid shiftId query param being used in /shift or /bulk shifts endpoint | Use a valid shiftId(s) as query param. |
| — | depositAddress missing | 200 OK | Deposit addresses are unassigned after 60 days (40 days for EVM token deposits), at which point the field is null and the address may be reassigned. | Persist the address when the shift is created, treat it as nullable in /v2/shifts/{shiftId}, /v2/shifts, and /v2/bulkshifts, and never send funds to an expired-order address. |
| BAD_USER_INPUT | Invalid network | 500 Internal Server Error | Incorrect/missing depositNetwork or settleNetwork | Use/add correct depositNetwork or settleNetwork. See /v2/coins for a list of supported cryptocurrencies and their respective networks. |
| BAD_USER_INPUT | Invalid coin | 500 Internal Server Error | Invalid depositCoin or settleCoin | Use a supported coin for depositCoin and settleCoin. See /v2/coins for a list of supported cryptocurrencies and their respective networks. |
| BAD_USER_INPUT | Amount too low. Settle amount is less than or equals to 0 | 500 Internal Server Error | settleAmount is less than or equals to 0 | Use a higher value. |
| QUOTE_UNAVAILABLE | Amount too low. Minimum deposit amount: X | 500 Internal Server Error | depositAmount is too low | Use a higher value. See /v2/pair for the minimum deposit value. |
| QUOTE_UNAVAILABLE | Amount too high. Maximum deposit amount: X | 500 Internal Server Error | depositAmount is too high | Use a lower value. See /v2/pair for the maximum deposit value. |
| SHIFT_UNAVAILABLE | Deposit and settle method must be different | 500 Internal Server Error | depositCoin and depositNetwork values are similar to settleCoin and settleNetwork | Ensure that methods being used are different. |
| BAD_USER_INPUT | Memo is not supported for this settle coin | 500 Internal Server Error | settleCoin being used does not supports memo | Check if the network for the settleCoin is included in the networksWithMemo array using /v2/coins. |
| BAD_USER_INPUT | Memo is not supported for this deposit coin | 500 Internal Server Error | depositCoin being used does not supports memo | Check if the network for the depositCoin is included in the networksWithMemo array using /v2/coins. |
| UNKNOWN | Internal Server Error | 500 Internal Server Error | The quoteId being used in creating fixed shift is invalid | Use a valid quoteId |