Bybit Pay

Overview

In the Bybit Pay payment method, customers make purchases by using QR codes.

With Bybit Pay, you can accept payments from your customers by using Payment Page and Gate and perform refunds and payouts by using Gate.

In Bybit Pay, purchase procedure follows the following scenario: the customer scans a QR code displayed on the checkout page or in your system (when performing the purchase by using Gate).

Download the logo in the vector format here.

Payment method type E-wallets
Countries and regions All countries, except: United States of America, Hong Kong, Singapore, Canada, France, United Kingdom of Great Britain and Northern Ireland, Democratic People's Republic of Korea, Cuba, Islamic Republic of Iran, Uzbekistan, Sudan, Syrian Arab Republic
Payment currencies BRL, EUR, RUB, USD
Payment amount limits Contact your key account manager at Monetix for details. Also you can check the payment amount limits in your project by using Dashboard.
Currency conversion On the Monetix side
Purchases
Payouts
Stored credentials payments
Full refunds
Partial refunds
Chargebacks
Special considerations
  • The payment amount is converted to an equivalent amount in the USD currency on the Monetix side.
  • The payment QR code expires 1 hour after the purchase was initiated.
  • The countdown on the checkout page shows the time left to the payment expiration. If the customer fails to complete the payment before the expiration time, the purchase will be declined.
  • The payment QR code can be used for payment only once. The customer must initiate a new purchase in your system to make another payment.
Onboarding and access fee Contact your key account manager at Monetix for details.

Operations support

Interfaces Payment processing time
Payment Page Gate Dashboard basic threshold
Purchase 2-3 minutes 30 minutes
Payout 2-3 minutes 1 hour
Full refund 2-3 minutes 1 hour
Partial refund 2-3 minutes 1 hour

You can check the payment amount limits in your project by using Dashboard. To check your payment amount limits, go to Dashboard, select the Projects section, and then click the Payment methods tab.

The following sections provide more information about the payment processing flow and the analysis of completed payments.

Purchase by using Payment Page

General information

To perform a purchase by using Payment Page with the Bybit Pay payment method:

  1. Send a request with all the required parameters and signature to the Monetix URL.
  2. Accept the callback with the purchase result from the payment platform.

The following figure shows the complete purchase processing flow in the Bybit Pay payment method.

Figure 1. Purchase processing steps for a purchase by using Payment Page
  1. The customer initiates a purchase in your system.
  2. Your system sends the request for the purchase through Payment Page to the Monetix URL.
  3. The Monetix payment platform receives the request.
  4. The payment platform processes the request and checks whether it contains all the required parameters and the signature is correct.
  5. The payment platform creates the checkout page based on the project settings and request parameters.
  6. The checkout page is displayed to the customer.
  7. The customer chooses to make a purchase with the Bybit Pay payment method.
  8. Payment Page forwards the purchase request to the payment platform.
  9. The payment platform processes the request and forwards it to the provider service.
  10. The provider service processes the purchase request.
  11. The provider service generates and sends the payment QR code data and the URL to the provider app to the payment platform.
  12. The payment platform forwards the data to Payment Page.
  13. Payment Page displays the QR code and the button with the redirect to the provider app to the customer.
  14. The customer completes the purchase.
  15. The provider service processes the purchase.
  16. The provider service sends the purchase result information to the payment platform.
  17. The payment platform sends a callback with the payment result to your system.
  18. The payment platform sends the payment result to Payment Page.
  19. Payment Page displays the payment result to the customer on the checkout page.

Request

The following table lists the parameters that you need to include in the request for purchase through Payment Page with the Bybit Pay payment method.

Table 1. Basic parameters of requests to Payment Page

strictly required—the parameter must be in the initial request.

optional—the parameter is optional but adding it to the request either makes the payment process more customer-friendly or helps to increase the percentage of successful payments.

Parameter Description

project_id
integer
strictly required

Project ID you obtained from Monetix when integrating.

Example: 123

payment_id
string
strictly required

Payment ID unique within your project.

Example: payment_47

customer_id
string
strictly required

Unique ID of the customer within your project.

Example: customer_123

customer_first_name
string
strictly required

Customer's first name.

Example: John

customer_last_name
string
strictly required

Customer's last name.

Example: Doe

customer_email
string
strictly required

Customer's email.

Example: johndoe@example.com

payment_currency
string
strictly required

Code of the purchase currency in the ISO-4217 alpha-3 format.

Example: RUB

payment_amount
integer
strictly required

Purchase amount in minor currency units without any decimal point or comma. To check whether the currency has any minor units, see Currency codes.

Example: 123,00 RUB must be sent as 12300

signature
string
strictly required

Signature created after you've specified all the request parameters. For more information about signature generation, see Signature generation and verification.

force_payment_method
string
optional

Parameter that allows you to enforce the Bybit Pay payment method for your customer and skip the page with payment method selections.

To enforce the Bybit Pay payment method and skip the page with payment method selection, add the force_payment_method parameter to the request and set its value to bybit. For more information about enforcing payment methods, see Preselecting payment methods.

Example: force_payment_method: 'bybit'

You can also add any other optional parameters to the request, if necessary. For the list of all the parameters possible in requests to Payment Page, see Payment Page invocation parameters.

Here is an example of the data from a request to open the checkout page by using EPayWidget:

EPayWidget.run(
    {
        project_id: 1234,
        payment_id: 'payment_47',
        customer_id: 'customer_123',
        customer_first_name: 'John',
        customer_last_name: 'Doe',
        customer_email: 'johndoe@example.com',
        payment_currency: 'RUB',
        payment_amount: 12300,
        force_payment_method: 'bybit',    
        signature: 'kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO\/RLUkDJrOcZzUCwX6R\/ekpZhkIQg=='
    }
)

Callback

In the Bybit Pay payment method, the payment platform returns the purchase result in a callback. For the information about the callback structure, see Callbacks in Payment Page.

The following is an example of a callback body with information about a successfully completed purchase.

Figure 2. Example of the data from a successful purchase callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "Bybit",
        "sum": {
            "amount": 12300,
            "currency": "RUB"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

The following is an example of a callback for a declined purchase.

Figure 3. Example of the data from a declined purchase callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "method": "Bybit",
        "sum": {
            "amount": 12300,
            "currency": "RUB"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 31,
        "type": "sale",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "created_date": "2022-03-25T11:19:53+0000",
        "request_id": "fff3d5f8d5d31bc460b68b57dc63f4b482e906eb",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "20000",
        "message": "General decline",
        "provider": {
            "id": 15923,
            "payment_id": "0cf4215c-8978",
            "auth_code": ""
        }
    },
    "signature": "J7W15rkqrLzTCD4HkoM4qoEnlVlfqz8155QSlXJKR4m8C4z2iFYv58P4VnHANu445/jmY+g=="
}

Related topics

Purchase by using Gate

General information

To perform a purchase by using Gate with the Bybit Pay payment method:

  1. Send the request with all the required parameters and signature to the Monetix URL.
  2. Show the screen with the payment QR code (or the URL to the provider app) to the customer.
  3. Accept the callback with the purchase result from the payment platform.

The following figure provides the details of the purchase processing flow in the Bybit Pay payment method.

Figure 4. Purchase processing flow when performing a purchase by using Gate
  1. The customer initiates a purchase in your system.
  2. Your system sends the purchase request to Gate.
  3. The Monetix payment platform receives the request.
  4. The payment platform checks whether the request contains all the required parameters and correct signature.
  5. The payment platform sends you a response in which it acknowledges your request and provides the request validation result. (For more information about the response format, see Response structure.)
  6. The payment platform processes the request and forwards it to the provider service.
  7. The provider service processes the purchase request.
  8. The provider service generates and sends the payment QR code data and the URL to the provider app to the payment platform.
  9. The payment platform sends the data to your system in the display_data object.
  10. Your system displays the QR code and the URL to the provider app to the customer.
  11. The customer completes the purchase.
  12. The provider service processes the purchase.
  13. The provider service informs the payment platform about the purchase result.
  14. The payment platform sends the callback with the payment result to your system.
  15. Your system sends the payment result to the customer.

Request

This section provides the instructions on how to build the request for purchase with the Bybit Pay payment method.

HTTP request method POST
Request body format JSON
API endpoint /v2/payment/wallet/bybit/sale
Full API endpoint specification /v2/payment/wallet/{payment_method}/sale
Table 2. Basic parameters of a purchase request

strictly required—the parameter must be in the initial request.

optional—the parameter is optional but adding it to the request either makes the payment process more customer-friendly or helps to increase the percentage of successful payments.

Object Parameter Description

general
object
strictly required

project_id
integer
strictly required

Project ID you obtained from Monetix when integrating.

Example: 123

payment_id
string
strictly required

Payment ID unique within your project.

Example: payment_47

signature
string
strictly required

Signature created after you've specified all the request parameters. For more information about signature generation, see Signature generation and verification.

customer
object
strictly required

id
string
strictly required

Unique ID of the customer within your project.

Example: customer_123

ip_address
string
strictly required

IP address of the customer's device.

Example: 198.51.100.47

email
string
strictly required

Customer's email.

Example: johndoe@example.com

first_name
string
strictly required

Customer's first name.

Example: John

last_name
string
strictly required

Customer's last name.

Example: Doe

browser
string
optional

Customer's brower name and version.

Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36

device_type
string
optional

Customer's device type. Possible options: APP (mobile device), WEB (desktop), OTHERS (another deivce type).

Example: WEB

device_id
string
optional

Customer's deivce id.

Example: 4343323242

payment
object
strictly required

amount
integer
strictly required

Purchase amount in minor currency units without any decimal point or comma. To check whether the currency has any minor units, see Currency codes.

Example: 123,00 RUB must be sent as 12300

currency
string
strictly required

Code of the purchase currency in the ISO-4217 alpha-3 format.

Example: RUB

You can also add any other optional parameters to the purchase request, if necessary. For the list of all the parameters available in Gate, see API Reference.

Here is an example of the data from a request to initiate a purchase with the Bybit Pay payment method.

Figure 5. Example of the data from a purchase request
{
    "general": {
        "project_id": 1234,
        "payment_id": "payment_47",
        "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "customer": {
        "id": "customer_123",
        "ip_address": "198.51.100.47",
        "first_name": "John",
        "last_name": "Doe",
        "email": "johndoe@example.com",
        "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
        "device_type": "WEB",
        "device_id": "4343323242"
    },
    "payment": {
        "amount": 12300,
        "currency": "RUB"
    }
}

Displaying the payment QR code to the customer

After receiving and processing your purchase request, the payment platform sends you the callback with the data for displaying the payment QR code and the URL to the provider app to the customer. Use the data from the display_data array and the URL to the provider app to display the QR code to the customer. Array's structure is described in detail below.

Table 3. Description of the display_data array
Element Description
{ 
	"type": "qr_data", 
	"title": "QR code", 
	"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ" 
}
QR code image encoded into the string by using the Base64 scheme.

This element is always presented in display_data array.

Example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ

{ 
	"type": "add_info", 
	"title": "lifetime", 
	"data": "1752056369" 
}
QR code expiration time and date in the Unix time format.

This element is always presented in display_data array.

Example: 1752056369

{ 
	"type": "qr_url", 
	"title": "QR code", 
	"data": "https://i.bybit.com/dfewabkz" 
}
Link to the provider's app.

This element is always presented in display_data array.

Example: https://i.bybit.com/dfewabkz

{ 
	"type": "add_info", 
	"title": "amount", 
	"data": "12300" 
}

Payout amount in minor currency units without any decimal point or comma.

This element is always presented in display_data array.

Example: 12300

{ 
	"type": "add_info", 
	"title": "currency", 
	"data": "RUB" 
}

Code of the payout currency in the ISO-4217 alpha-3 format.

This element is always presented in display_data array.

Example: RUB

Here is an example of the callback snippet with the data for displaying the QR code to the customer.

"display_data": [
    {
        "type": "qr_data",
        "title": "QR code",
        "data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ"
    },
    {
        "type": "add_info",
        "title": "lifetime",
        "data": "1752056369"
    },
    {
        "type": "qr_url", 
	    "title": "QR code", 
	    "data": "https://i.bybit.com/dfewabkz"
    },
    {
        "type": "add_info",
        "title": "amount",
        "data": "12300"
    },
    {
        "type": "add_info",
        "title": "currency",
        "data": "RUB"
    }
]

Callback

In the Bybit Pay payment method, the payment platform returns the purchase result in a callback. For the information about the callback structure, see Callbacks in Gate.

The following is an example of a callback body with the information about a successfully completed purchase.

Figure 6. Example of the data from a successful purchase callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "Bybit",
        "sum": {
            "amount": 12300,
            "currency": "RUB"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

The following is an example of a callback for a declined purchase.

Figure 7. Example of the data from a declined purchase callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "method": "Bybit",
        "sum": {
            "amount": 12300,
            "currency": "RUB"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 31,
        "type": "sale",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "created_date": "2022-03-25T11:19:53+0000",
        "request_id": "fff3d5f8d5d31bc460b68b57dc63f4b482e906eb",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "20000",
        "message": "General decline",
        "provider": {
            "id": 15923,
            "payment_id": "0cf4215c-8978",
            "auth_code": ""
        }
    },
    "signature": "J7W15rkqrLzTCD4HkoM4qoEnlVlfqz8155QSlXJKR4m8C4z2iFYv58P4VnHANu445/jmY+g=="
}

Related topics

Refund by using Gate

General information

To perform a refund by using Gate for a purchase made with the Bybit Pay payment method:

  1. Send a request with all the required parameters and signature to the Monetix URL.
  2. Accept the callback with the refund result from the payment platform.

The following picture provides all the details of the refund processing flow in the Bybit Pay payment method.

Figure 8. Refund processing flow when performing a refund by using Gate
  1. The customer initiates a refund in your system.
  2. Your system sends the request for refund to Gate.
  3. The Monetix payment platform receives the request.
  4. The payment platform checks whether the request contains all the required parameters and the correct signature.
  5. The payment platform sends you a response in which it acknowledges your request and provides the request validation result. (For more information about the response format, see Response structure.)
  6. The payment platform processes the request and forwards it to the provider service.
  7. The provider service processes the refund request.
  8. The provider service informs the payment platform about the refund result.
  9. The payment platform sends you the callback with the refund result.
  10. Your system sends the refund result to the customer.

Request

This section provides the instructions on how to build the request for refund through Gate by using the Bybit Pay payment method.

HTTP request method POST
Request body format JSON
API endpoint /v2/payment/wallet/bybit/refund
Full API endpoint specification /v2/payment/wallet/{payment_method}/refund
Table 4. Basic parameters of a refund request

strictly required—the parameter must be in the initial request.

optional—the parameter is optional but adding it to the request either makes the payment process more customer-friendly or helps to increase the percentage of successful payments.

Object/array Parameter Description

general
object
strictly required

project_id
integer
strictly required

Project ID you obtained from Monetix when integrating.

Example: 123

payment_id
string
strictly required

ID of the payment that the refund is made for.

Example: payment_47

signature
string
strictly required

Signature created after you've specified all the request parameters. To learn about signature generation, see Signature generation and verification.

customer
object
strictly required

id
string
strictly required

Unique ID of the customer within your project.

Example: customer_123

ip_address
string
strictly required

IP address of the customer's device.

Example: 198.51.100.47

browser
string
optional

Customer's brower name and version.

Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36

device_type
string
optional

Customer's device type. Possible options: APP (mobile device), WEB (desktop), OTHERS (another deivce type).

Example: WEB

device_id
string
optional

Customer's deivce id.

Example: 4343323242

payment
object
strictly required

amount
integer
optional

Refund amount in minor currency units without any decimal point or comma. To check whether the currency has any minor units, see Currency codes.

This parameter is required when performing a partial refund.

Example: 123,00 RUB must be sent as 12300

currency
string
optional

Code of the refund currency in the ISO-4217 alpha-3 format.

Example: RUB

description
string
strictly required

Refund description.

Example: Refund

You can also add any other optional parameters to the refund request, if necessary. For the list of all the parameters available in Gate, see API Reference.

Here is an example of the data from a request to initiate a refund for a purchase made with the Bybit Pay payment method.

Figure 9. Example of the data from a refund request
{ 
    "general": { 
        "project_id": 1234, 
        "payment_id": "payment_47", 
        "signature": "vVDlp9QFbU76c5Hb2sofs4kypzZtGwJW6+y1CN3AIrirtsTaXXBQvnHxp7j3E1zdmg==" 
    },
    "customer": {
        "id": "customer_123",
        "ip_address": "198.51.100.47",
        "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
        "device_type": "WEB",
        "device_id": "4343323242"
    }, 
    "payment": { 
        "description": "Refund description",
        "amount": 12300, 
        "currency": "RUB"
    } 
}

Callback

In the Bybit Pay payment method, the payment platform returns the refund result in a callback. For the information about the callback structure, see Callbacks in Gate.

The following is an example of a callback body with the information about a successfully completed refund.

Figure 10. Example of the body of a successful refund callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "refunded",
        "date": "20201-09-09T10:02:18+0000",
        "method": "Bybit",
        "sum": {
            "amount": 0,
            "currency": "RUB"
        },
        "description": "Refund description"
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 12345677654321,
        "type": "refund",
        "status": "success",
        "date": "2021-09-09T10:02:18+0000",
        "created_date": "2021-09-09T09:46:14+0000",
        "request_id": "6b77b588d77d5c27be31be7b72bf9adf...b1c85eda238b73cac-00090267",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "WUZUy26FHZglsro9PYFr89suJAciQ...5Fev4NtHl56VGTgX9m/g=="
}

The following is an example of a callback for a declined refund.

Figure 11. Example of the data from a declined refund callback
{
        "project_id": 1234,
        "payment": {
            "id": "payment_47",
            "type": "purchase",
            "status": "success",
            "date": "2021-09-09T10:02:18+0000",
            "method": "Bybit",
            "sum": {
                "amount": 12300,
                "currency": "RUB"
            },
            "description": "Refund description"
        },
        "operation": {
            "id": 12345677654321,
            "type": "refund",
            "status": "decline",
            "date": "2021-09-09T10:02:18+0000",
            "created_date": "2021-09-09T09:46:14+0000",
            "request_id": "6b77b588d77d5c27be31be7b72bf9adf...b1c85eda238b73cac-00090268",
            "sum_initial": {
                "amount": 12300,
                "currency": "RUB"
            },
            "sum_converted": {
                "amount": 123,
                "currency": "USD"
            },
            "code": "20000",
            "message": "General decline"
            }
        },
        "signature": "WUZUy26FHZglsro9PYFr89suJAciQ...5Fev4NtHl56VGTgX9m/g=="
    }

Related topics

Payout by using Gate

General information

To perform a payout by using Gate with the Bybit Pay payment method:

  1. Send a request with all the required parameters and signature to the Monetix URL.
  2. Accept a callback with the payout result from the payment platform.

The following picture provides the details of the payout processing flow in the Bybit Pay payment method.

Figure 12. Payout processing flow when performing a payout by using Gate
  1. The customer initiates a payout in your system.
  2. Your system sends the payout request to Gate.
  3. The Monetix payment platform receives the request.
  4. The payment platform checks whether the request contains all the required parameters and correct signature.
  5. The payment platform sends you a response in which it acknowledges your request and provides the request validation result. (For more information about the response format, see Response structure.)
  6. The payment platform processes the request and forwards it to the provider service.
  7. The provider service processes this request.
  8. The provider service informs the payment platform about the payout result.
  9. The payment platform sends a callback with the payout result to your system.
  10. Your system sends the payout result to the customer.

Request

This section provides the instructions on how to build the payout request through Gate by using the Bybit Pay payment method.

HTTP request method POST
Request body format JSON
API endpoint /v2/payment/wallet/bybit/payout
Full API endpoint specification /v2/payment/wallet/{payment_method}/payout
Table 5. Basic parameters of a payout request

strictly required—the parameter must be in the initial request.

optional—the parameter is optional but adding it to the request either makes the payment process more customer-friendly or helps to increase the percentage of successful payments.

Object Parameter Description

general
object
strictly required

project_id
integer
strictly required

Project ID you obtained from Monetix when integrating.

Example: 123

payment_id
string
strictly required

Payment ID unique within your project.

Example: payment_47

signature
string
strictly required

Signature created after you've specified all the request parameters. To learn about signature generation, see Signature generation and verification.

customer
object
strictly required

id
string
strictly required

Unique ID of the customer within your project.

Example: customer_123

ip_address
string
strictly required

IP address of the customer's device.

Example: 198.51.100.47

email
string
strictly required

Customer's email.

Example: johndoe@example.com

first_name
string
strictly required

Customer's first name.

Example: John

last_name
string
strictly required

Customer's last name.

Example: Doe

account_id
string
strictly required

Customer's account id.

Example: 123456

browser
string
optional

Customer's brower name and version.

Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36

device_type
string
optional

Customer's device type. Possible options: APP (mobile device), WEB (desktop), OTHERS (another deivce type).

Example: WEB

device_id
string
optional

Customer's deivce id.

Example: 4343323242

payment
object
strictly required

amount
integer
strictly required

Payout amount in minor currency units without any decimal point or comma. To check whether the currency has any minor units, see Currency codes.

Example: 123,00 RUB must be sent as 12300

currency
string
strictly required

Code of the payout currency in the ISO-4217 alpha-3 format.

Example: RUB

You can also add any other optional parameters to the payout request, if necessary. For the list of all the parameters available in Gate, see API Reference.

Here is an example of the data from a request to initiate a payout with the Bybit Pay payment method.

Figure 13. Example of payout request body
{
    "general": {
        "project_id": 1234,
        "payment_id": "payment_47",
        "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "customer": {
        "id": "customer_123",
        "ip_address": "198.51.100.47",
        "first_name": "John",
        "last_name": "Doe",
        "email": "johndoe@example.com",
        "account_id": "123456",
        "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
        "device_type": "WEB",
        "device_id": "4343323242"
    },
    "payment": {
        "amount": 12300,
        "currency": "RUB"
    }
}

Callback

In the Bybit Pay payment method, the payment platform returns the payout result in a callback. For the information about the callback structure, see Callbacks in Gate.

The following is an example of a callback body with the information about a successfully completed payout.

Figure 14. Example of the data from a successful payout callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_48",
        "type": "payout",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "Bybit",
        "sum": {
            "amount": 12300,
            "currency": "RUB"
        },
        "description": ""
    },
    "operation": {
        "id": 29,
        "type": "payout",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-123",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

The following is an example of a callback for a declined payout.

Figure 15. Example of the data from a declined payout callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_48",
        "type": "payout",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "method": "Bybit",
        "sum": {
            "amount": 12300,
            "currency": "RUB"
        },
        "description": ""
    },
    "operation": {
        "id": 29,
        "type": "payout",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "created_date": "2022-03-25T11:19:53+0000",
        "request_id": "fff3d5f8d5d31bc460b68b57dc63f4b482e906eb",
        "sum_initial": {
            "amount": 12300,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 123,
            "currency": "USD"
        },
        "code": "20000",
        "message": "General decline",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-123",
            "auth_code": ""
        }
    },
    "signature": "J7W15rkqrLzTCD4HkoM4qoEnlVlf155QSlXJKR4m8C4z2iFYv58P4VnHANu445/jmY+g=="
}

Related topics