Manual Repay
info
- When
coinis provided andamountis provided, the following validation applies based onrepaymentType:ALL: request is rejected ifamountexceeds total liabilityFIXED: request is rejected ifamountexceeds fixed-rate liabilityFLEXIBLE: request is rejected ifamountexceeds floating-rate liability
- When
coinis provided andamountis not:FLEXIBLE: repays floating-rate liability of that coin onlyFIXED: repays fixed-rate liability of that coin onlyALL: repays all liabilities of that coin (floating-rate first, then fixed-rate)
- When neither
coinnoramountis provided,repaymentTypemust beALL, then repay all the liabilities; otherwise the request will be rejected.
important
- When repaying, the system will first use the spot available balance of the debt currency. If that’s not enough, the remaining amount will be repaid by converting other assets according to the liquidation order.
- If you only want to repay using your spot balance and don't want to trigger currency convert repayment, please refer to Manual Repay Without Asset Conversion
- Repayment is prohibited between 04:00 and 05:30 per hour. Interest is calculated based on the BorrowAmount at 05:00 per hour.
- System repays floating-rate liabilities first, followed by fixed-rate
- Starting Mar 17, 2026 (gradual rollout, fully released on Mar 24, 2026), BYUSDT can be used for repayment.
- MNT will temporarily not be used for repayment, and repaying MNT liabilities through convert-repay is not supported. However, you may still use Manual Repay Without Asset Conversion to repay MNT using your existing balance.
- Starting Feb 10, 2026 at 08:00 UTC, UTA Loan manual repayments will be updated to calculate coin-conversion repayment fees using the higher of the collateral or debt asset fee rate and introduce a per-transaction coin-conversion limit of USD 300,000 (Total coin-conversion amount must less than 300,000 USD equivalent) to strengthen stability and risk controls. Please refer to UTA Loan manual repayment update
- API response behavior based on
repaymentType:FIXED: asynchronous;FLEXIBLE: synchronous;ALL: asynchronous
HTTP Request
POST/v5/account/repayRequest Parameters
| Parameter | Required | Type | Comments |
|---|---|---|---|
| coin | false | string | coin name, uppercase only |
| amount | false | string | Repay amount. If coin is not passed in input parameter, amount can not be passed in input parameter |
| repaymentType | false | string | Repayment type. ALL: repay both fixed-rate and floating-rate liabilities, repaying floating-rate first; FIXED: repay fixed-rate liabilities only; FLEXIBLE: repay floating-rate liabilities only. Default: FLEXIBLE |
Response Parameters
| Parameter | Type | Comments |
|---|---|---|
| result | array | Object |
| > resultStatus | string |
|
Request Example
- HTTP
- Python
- Node.js
POST /v5/account/repay HTTP/1.1
Host: api.bybit.com
X-BAPI-SIGN: XXXXX
X-BAPI-API-KEY: xxxxxxxxxxxxxxxxxx
X-BAPI-TIMESTAMP: 1675842997277
X-BAPI-RECV-WINDOW: 5000
Content-Type: application/json
{
"coin":"BTC",
"amount":"0.01"
}
from pybit.unified_trading import HTTP
session = HTTP(
testnet=True,
api_key="xxxxxxxxxxxxxxxxxx",
api_secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
)
print(session.repay(
coin="BTC",
amount="0.01"
))
Response Example
{
"retCode": 0,
"retMsg": "success",
"result": {
"resultStatus": "P"
},
"retExtInfo": {},
"time": 1756295680801
}