The ByBit integration allows a developer to enable a ByBit user to use their ByBit Pay balance to deposit in their desired platform / wallet address.
Check the use cases that it can serve here .
The supported sources and destinations can be found below along with important integration information.
Go over legends & concepts ✅ Learn key terminologies for a better implementation
Chains, rails, and constraints
Supported Source Currency Supported Source Rail Supported Destination Currency Supported Destination Rail Quote Estimation Minimum Order Limit Maximum Order Limit Estimated Settlement Time (once deposit received) Settlement Configuration ( settlment_via) Fee rebalancing capability (rebalance_fee) USDC BYBIT USDC SOLANA ✅ 3 Not applicable yet ~ 3 mins ONE_TO_ONEtrue / falseUSDC BYBIT USDC ETHEREUM ✅ 7 Not applicable yet ~ 3 mins ONE_TO_ONEtrue / falseUSDC BYBIT USDC BASE ✅ 3 Not applicable yet ~ 3 mins ONE_TO_ONEtrue / falseUSDT BYBIT PYUSD SOLANA ✅ 3 Not applicable yet ~ 3 mins MARKET_ORDERHas to be always true (in roadmap for full support)
For routes where “Fee rebalancing capability” & “Quote estimation” is limited. Fin can enable both upon request of the Developer or Fin will enable themselves if it is in the roadmap. Please send request in your dedicated communication group.
ByBit Quote creation:
The quote endpoint requires a few key action for different settlement configuration at the moment
curl --request POST \
--url https: //sandbox.api.fin.com/v1/transit/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"order_amount" : "100.00" ,
"integration_type" : "BYBIT" ,
"settlement_config" : {
"settlement_via" : "MARKET_ORDER" ,
"rebalance_fee" : true ,
"destination_details" : {
"wallet_address" : "SOLANA_WALLET_ADDRESS" ,
"currency" : "USDC" ,
"rail" : "SOLANA"
}
}
}
'
To get a quote using settlement_via = MARKET_ORDER , rebalance_fee has to be true . We are in the processing of adding support for false as well.
ByBit Order creation:
The only required fields in different cases has been share below, more cases to be added as there are more use cases within ByBit that Fin supports.
Without Quote ID
With Quote ID
curl --request POST \
--url https: //sandbox.api.fin.com/v1/transit/payment \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"integration_type" : "BYBIT" ,
"order_info" : {
"payment_type" : "E_COMMERCE" ,
"merchant_trade_no" : "841e4ba2-1234-5678-9abc-a2a45de7bd00" ,
"order_amount" : "100.00" ,
"currency" : "USDT" ,
"currency_type" : "crypto" ,
"order_expire_time" : 3600 ,
"goods" : [
{
"shopping_name" : "test good1" ,
"mcc_code" : "1520" ,
"goods_name" : "test1" ,
"goods_detail" : "First product"
}
],
"env" : {
"terminal_type" : "APP" ,
"device" : "iPhone 15" ,
"browser_version" : "iOS 17.0 Safari" ,
"ip" : "192.168.0.1"
},
},
"fin" : {
"settlement_config" : {
"settlement_via" : "MARKET_ORDER" ,
"destination_details" : {
"wallet_address" : "Ox...." ,
"currency" : "PYUSD" ,
"rail" : "SOLANA"
}
}
}
}
curl --request POST \
--url https: //sandbox.api.fin.com/v1/transit/payment \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"integration_type" : "BYBIT" ,
"order_info" : {
"quote_id" : "4081fa09-7761-42b6-8f66-24beae1a2ca5" ,
"payment_type" : "E_COMMERCE" ,
"merchant_trade_no" : "841e4ba2-1234-5678-9abc-a2a45de7bd00" ,
"currency_type" : "crypto" ,
"goods" : [
{
"shopping_name" : "test good1" ,
"mcc_code" : "1520" ,
"goods_name" : "test1" ,
"goods_detail" : "First product"
}
],
"env" : {
"terminal_type" : "APP" ,
"device" : "iPhone 15" ,
"browser_version" : "iOS 17.0 Safari" ,
"ip" : "192.168.0.1"
},
}
}
If quote_id is provided then order_amount & fin object cannot be provided . Hence if the quote_id is not provided then order_amount & fin object is mandatory.
Definitions of parameters:
Parameters are ByBit specific, hence please find the definitions of those parameters in the APIs below in the table below.
Param name Definition merchant_trade_noUUID from the developer side for a particular order order_expire_time(Optional) By default the order will be valid for 1 hour. A developer can put their custom time range. The minimum order expire time is 10 mins goodsIn ByBit when something is being paid for it is attributed to a good. We need the goods information within this object goods.mccUniversal Merchant Category Codes, can be found here goods.goods_nameName of the good that is being paid for goods.goods_detailDetail of the good that is being paid for envNeeds to be accurate . Details about the customers environment, this requires information regarding the users device informationenv.terminal_typeAPP / WEB / WAP / MINIAPP - where is the customer initiating the payment fromenv.deviceDevice name of the customer env.browser_versionBrowser version of the customer where the web view is being loaded env.ipCustomers IP
Response Differences for ByBit
Integration Type Response Field BYBIT data.provider_response