Class: Bybit::RestApi::P2pService

Inherits:
BaseService show all
Defined in:
lib/bybit/rest_api/p2p_service.rb

Instance Method Summary collapse

Methods inherited from BaseService

#initialize

Constructor Details

This class inherits a constructor from Bybit::RestApi::BaseService

Instance Method Details

#create_ad(token_id:, currency_id:, side:, price_type:, premium:, price:, min_amount:, max_amount:, remark:, trading_preference_set:, payment_ids:, quantity:, payment_period:, item_type:, **kwargs) ⇒ Hash

Create a new P2P advertisement.

POST /v5/p2p/item/create

Parameters:

  • token_id (String)

    Token ID

  • currency_id (String)

    Currency ID

  • side (String)

    Side: 0 buy, 1 sell

  • price_type (String)

    Price type: 0 fixed, 1 floating

  • premium (String)

    Premium value

  • price (String)

    Ad price

  • min_amount (String)

    Minimum order amount

  • max_amount (String)

    Maximum order amount

  • remark (String)

    Ad remark

  • trading_preference_set (Hash)

    Trading preference settings

  • payment_ids (Array)

    Payment method IDs

  • quantity (String)

    Ad quantity

  • payment_period (String)

    Payment period in minutes

  • item_type (String)

    Item type

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



174
175
176
177
178
# File 'lib/bybit/rest_api/p2p_service.rb', line 174

def create_ad(token_id:, currency_id:, side:, price_type:, premium:, price:, min_amount:, max_amount:, remark:, trading_preference_set:, payment_ids:, quantity:, payment_period:, item_type:, **kwargs)
  params = kwargs.merge(token_id: token_id, currency_id: currency_id, side: side, price_type: price_type, premium: premium, price: price, min_amount: min_amount, max_amount: max_amount, remark: remark, trading_preference_set: trading_preference_set, payment_ids: payment_ids, quantity: quantity, payment_period: payment_period, item_type: item_type)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/item/create', body: params)
end

#get_account_infoObject

Get the P2P user account information for the caller.

POST /v5/p2p/user/personal/info



9
10
11
# File 'lib/bybit/rest_api/p2p_service.rb', line 9

def 
  @session.sign_request(method: :post, path: '/v5/p2p/user/personal/info', body: {})
end

#get_ads(token_id:, currency_id:, side:, **kwargs) ⇒ Hash

Get online P2P advertisement list filtered by token, currency and side.

POST /v5/p2p/item/online

Parameters:

  • token_id (String)

    Token ID

  • currency_id (String)

    Currency ID

  • side (String)

    Side: 0 buy, 1 sell

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :page (String)

    Page number

  • :size (String)

    Page size

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



23
24
25
26
27
# File 'lib/bybit/rest_api/p2p_service.rb', line 23

def get_ads(token_id:, currency_id:, side:, **kwargs)
  params = kwargs.merge(token_id: token_id, currency_id: currency_id, side: side)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/item/online', body: params)
end

#get_all_orders(page:, size:, **kwargs) ⇒ Hash

Get simplified list of all P2P orders with optional filters.

POST /v5/p2p/order/simplifylist

Parameters:

  • page (Integer)

    Page number

  • size (Integer)

    Page size

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :status (Integer)

    Order status filter

  • :begin_time (String)

    Begin time in milliseconds

  • :end_time (String)

    End time in milliseconds

  • :token_id (String)

    Token ID

  • :side (Integer)

    Side: 0 buy, 1 sell

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



41
42
43
44
45
# File 'lib/bybit/rest_api/p2p_service.rb', line 41

def get_all_orders(page:, size:, **kwargs)
  params = kwargs.merge(page: page, size: size)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/simplifyList', body: params)
end

#get_chat_messages(order_id:, size:, **kwargs) ⇒ Hash

Get the paginated chat message list for a P2P order.

POST /v5/p2p/order/message/listpage

Parameters:

  • order_id (String)

    Order ID

  • size (String)

    Page size

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :current_page (String)

    Current page number

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



55
56
57
58
59
# File 'lib/bybit/rest_api/p2p_service.rb', line 55

def get_chat_messages(order_id:, size:, **kwargs)
  params = kwargs.merge(order_id: order_id, size: size)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/message/listpage', body: params)
end

#get_counterparty_user_info(**kwargs) ⇒ Hash

Get counterparty user info for a P2P order.

POST /v5/p2p/user/order/personal/info

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :original_uid (String)

    Original user ID of the counterparty.

  • :order_id (String)

    P2P order ID.

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



68
69
70
71
72
# File 'lib/bybit/rest_api/p2p_service.rb', line 68

def (**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/user/order/personal/info', body: params)
end

#get_my_ad_details(item_id:, **kwargs) ⇒ Hash

Get details of a specific P2P advertisement owned by the caller.

POST /v5/p2p/item/info

Parameters:

  • item_id (String)

    Advertisement ID

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



80
81
82
83
84
# File 'lib/bybit/rest_api/p2p_service.rb', line 80

def get_my_ad_details(item_id:, **kwargs)
  params = kwargs.merge(item_id: item_id)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/item/info', body: params)
end

#get_my_ads(**kwargs) ⇒ Hash

Get the list of the caller's own P2P advertisements.

POST /v5/p2p/item/personal/list

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :item_id (String)

    Advertisement ID

  • :status (String)

    Ad status filter

  • :side (String)

    Side: 0 buy, 1 sell

  • :token_id (String)

    Token ID

  • :page (String)

    Page number

  • :size (String)

    Page size

  • :currency_id (String)

    Currency ID

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



98
99
100
101
102
# File 'lib/bybit/rest_api/p2p_service.rb', line 98

def get_my_ads(**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/item/personal/list', body: params)
end

#get_order_detail(order_id:, **kwargs) ⇒ Hash

Get the details of a specific P2P order.

POST /v5/p2p/order/info

Parameters:

  • order_id (String)

    Order ID

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



110
111
112
113
114
# File 'lib/bybit/rest_api/p2p_service.rb', line 110

def get_order_detail(order_id:, **kwargs)
  params = kwargs.merge(order_id: order_id)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/info', body: params)
end

#get_pending_orders(page:, size:, **kwargs) ⇒ Hash

Get simplified list of pending P2P orders with optional filters.

POST /v5/p2p/order/pending/simplifylist

Parameters:

  • page (Integer)

    Page number

  • size (Integer)

    Page size

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :status (Integer)

    Order status filter

  • :begin_time (String)

    Begin time in milliseconds

  • :end_time (String)

    End time in milliseconds

  • :token_id (String)

    Token ID

  • :side (Integer)

    Side: 0 buy, 1 sell

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



128
129
130
131
132
# File 'lib/bybit/rest_api/p2p_service.rb', line 128

def get_pending_orders(page:, size:, **kwargs)
  params = kwargs.merge(page: page, size: size)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/pending/simplifyList', body: params)
end

#get_user_paymentObject

Get the current user's P2P payment method list.

POST /v5/p2p/user/payment/list



137
138
139
# File 'lib/bybit/rest_api/p2p_service.rb', line 137

def get_user_payment
  @session.sign_request(method: :post, path: '/v5/p2p/user/payment/list', body: {})
end

#mark_order_as_paid(order_id:, payment_type:, payment_id:, **kwargs) ⇒ Hash

Mark a P2P order as paid by the buyer.

POST /v5/p2p/order/pay

Parameters:

  • order_id (String)

    Order ID

  • payment_type (String)

    Payment method type

  • payment_id (String)

    Payment method ID

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



149
150
151
152
153
# File 'lib/bybit/rest_api/p2p_service.rb', line 149

def mark_order_as_paid(order_id:, payment_type:, payment_id:, **kwargs)
  params = kwargs.merge(order_id: order_id, payment_type: payment_type, payment_id: payment_id)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/pay', body: params)
end

#release_assets(order_id:, **kwargs) ⇒ Hash

Release the assets held for a P2P order after payment is confirmed.

POST /v5/p2p/order/finish

Parameters:

  • order_id (String)

    Order ID

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



186
187
188
189
190
# File 'lib/bybit/rest_api/p2p_service.rb', line 186

def release_assets(order_id:, **kwargs)
  params = kwargs.merge(order_id: order_id)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/finish', body: params)
end

#remove_ad(item_id:, **kwargs) ⇒ Hash

Cancel/remove an existing P2P advertisement.

POST /v5/p2p/item/cancel

Parameters:

  • item_id (String)

    Advertisement ID

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



198
199
200
201
202
# File 'lib/bybit/rest_api/p2p_service.rb', line 198

def remove_ad(item_id:, **kwargs)
  params = kwargs.merge(item_id: item_id)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/item/cancel', body: params)
end

#send_chat_message(message:, content_type:, order_id:, msg_uuid:, **kwargs) ⇒ Hash

Send a chat message in a P2P order conversation.

POST /v5/p2p/order/message/send

Parameters:

  • message (String)

    Message content

  • content_type (String)

    Message content type

  • order_id (String)

    Order ID

  • msg_uuid (String)

    Message UUID

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :file_name (String)

    File name when sending a file

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



214
215
216
217
218
# File 'lib/bybit/rest_api/p2p_service.rb', line 214

def send_chat_message(message:, content_type:, order_id:, msg_uuid:, **kwargs)
  params = kwargs.merge(message: message, content_type: content_type, order_id: order_id, msg_uuid: msg_uuid)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/order/message/send', body: params)
end

#update_ad(id:, price_type:, premium:, price:, min_amount:, max_amount:, remark:, trading_preference_set:, payment_ids:, action_type:, quantity:, payment_period:, **kwargs) ⇒ Hash

Update or relist an existing P2P advertisement.

POST /v5/p2p/item/update

Parameters:

  • id (String)

    Advertisement ID

  • price_type (String)

    Price type: 0 fixed, 1 floating

  • premium (String)

    Premium value

  • price (String)

    Ad price

  • min_amount (String)

    Minimum order amount

  • max_amount (String)

    Maximum order amount

  • remark (String)

    Ad remark

  • trading_preference_set (Hash)

    Trading preference settings

  • payment_ids (Array)

    Payment method IDs

  • action_type (String)

    Action type: MODIFY or ACTIVE

  • quantity (String)

    Ad quantity

  • payment_period (String)

    Payment period in minutes

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



237
238
239
240
241
# File 'lib/bybit/rest_api/p2p_service.rb', line 237

def update_ad(id:, price_type:, premium:, price:, min_amount:, max_amount:, remark:, trading_preference_set:, payment_ids:, action_type:, quantity:, payment_period:, **kwargs)
  params = kwargs.merge(id: id, price_type: price_type, premium: premium, price: price, min_amount: min_amount, max_amount: max_amount, remark: remark, trading_preference_set: trading_preference_set, payment_ids: payment_ids, action_type: action_type, quantity: quantity, payment_period: payment_period)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/item/update', body: params)
end

#upload_chat_file(upload_file:, **kwargs) ⇒ Hash

Upload a file for use in a P2P order chat.

POST /v5/p2p/oss/upload_file

Parameters:

  • upload_file (String)

    File to upload

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



249
250
251
252
253
# File 'lib/bybit/rest_api/p2p_service.rb', line 249

def upload_chat_file(upload_file:, **kwargs)
  params = kwargs.merge(upload_file: upload_file)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/p2p/oss/upload_file', body: params)
end