Payout Requests¶
Note: Parameters marked with an asterisk (*) are required.
Creating a Payout Request¶
Request¶
POST example.com/api/merchant/"merchant"/create_pay_out/
Headers¶
| Name | Value |
|---|---|
| Content-Type* | application/json |
Request Parameters¶
| Name | Type | Format | Description |
|---|---|---|---|
| order_id* | string max: 255 |
Request ID in your system | |
| payment_method* | string | enum (card, sbp, score, iban) | Payout type (card, SBP, bank account, IBAN) |
| fiat_amount* | string | Request amount in fiat currency with two decimal places | |
| fiat_currency* | string | enum | Order currency. Available values are listed in the regions list |
| timeout | int | Payout timeout in minutes | |
| number_score | string (20) | Bank account number (for bank account payouts) | |
| number_card | string (16) | Card number (for card payouts) | |
| phone_number | string min 11 max:13 |
Phone number (for SBP payouts) | |
| iban_number | string max: 34 |
IBAN (for IBAN payouts) | |
| bank_name | string max: 72 |
Recipient bank (required when payment_method = sbp) | |
| bik | string | Recipient bank BIC (if available) | |
| full_name | string max: 128 |
Recipient full name (if available) | |
| success_callback_url* | string max: 512 |
URL for successful payout notification | |
| error_callback_url* | string max: 512 |
URL for payout cancellation by the platform | |
| customer | string max: 128 |
Customer identifier | |
| order_description | string max: 8000 |
Order description | |
| sign* | string | Request signature |
Request Signature Generation Method:¶
The signature for creating a payout request is generated by calculating the SHA256 hash of the following string:
order_id : fiat_amount : number_score/number_card/phone_number/iban_number : fiat_currency : sign_key
One of the parameters number_score/number_card/phone_number/iban_number is selected depending on the payout method used.
Signature generation example:
String to sign:
SHA256 result:
Request Example¶
{
"order_id": "order123",
"payment_method": "sbp",
"fiat_amount": "1500.00",
"fiat_currency": "rub",
"timeout": 30,
"phone_number": "79161234567",
"bank_name": "Sberbank",
"bik": "044525225",
"full_name": "Ivanov Ivan Ivanovich",
"success_callback_url": "https://yourwebsite.com/success",
"error_callback_url": "https://yourwebsite.com/error",
"customer": "CUST12345",
"order_description": "Reward payout for completed work",
"sign": "53f49a84b929a1c6bf16fdf36ed151738def4b30a8088237ce480ffef538aa2f"
}
Response Parameters¶
| Name | Type | Format | Description |
|---|---|---|---|
| internal_transaction_id* | string max: 72 |
Unique transaction ID in the system (internal identifier, provided for informational purposes) | |
| fiat_amount* | string | Transaction amount in fiat currency | |
| usdt_amount* | string | Transaction amount in USDT | |
| merchant_spent_usdt* | string | USDT amount debited from merchant balance (4 decimal places) | |
| fiat_currency* | string | Fiat currency code | |
| exchange_rate* | string | Fiat/USDT exchange rate (4 decimal places) | |
| payment_method* | string | Payment method | |
| reject_callback_url* | string max: 512 |
URL for payout cancellation by the merchant |
Possible Errors in Response¶
| Text | Value |
|---|---|
| overloading requisite | Requisite overload, try creating a request for a different amount, with a different payment method, or wait |
| low balance | Your balance is too low to create a request |
| this payment method is disabled for your merchant | This payout method is disabled for your merchant |
Note: The error list is not exhaustive and provides only the main errors, please consider this during integration.
Response Example¶
Payout Request Confirmation/Cancellation by Platform¶
Description: This request is a callback from the platform when a request is cancelled or confirmed. The request is sent by the platform to the specified merchant URL (success_callback_url or error_callback_url) to notify about request status changes.
Request¶
POST error_callback_url
or
POST success_callback_url
Headers¶
| Name | Value |
|---|---|
| Content-Type* | application/json |
Request Parameters¶
| Name | Type | Format | Description |
|---|---|---|---|
| order_id* | string max: 255 |
Request ID in your system | |
| standart_sign* | string | Standard signature | |
| type* | string | enum (pay_out) | Operation type |
| status* | string | enum (successful, rejected_timeout, rejected_merchant, rejected_gate) | Request status (successful - success, rejected_timeout - rejected by timeout, rejected_merchant - rejected by merchant, rejected_gate - rejected by platform support) |
| fiat_amount* | string | Request amount in fiat currency | |
| usdt_amount* | string | Request amount in USDT | |
| merchant_spent_usdt* | string | USDT amount spent by merchant | |
| fiat_currency* | string | Fiat currency code | |
| exchange_rate* | string | Exchange rate | |
| payment_method* | string | enum (card, sbp, score, iban) | Payout type (card, SBP, bank account, IBAN) |
| created_at* | string | ISO 8601 | Request creation date and time |
| updated_at* | string | ISO 8601 | Request update date and time |
| number_card | string | Card number (only provided when payment_method = card) | |
| phone_number | string | Phone number (only provided when payment_method = sbp) | |
| number_score | string | Bank account number (only provided when payment_method = score) | |
| iban_number | string | IBAN (only provided when payment_method = iban) | |
| full_name* | string | Recipient full name | |
| bank_name* | string | Recipient bank name |
Note:
1. For integration convenience, when confirming/cancelling a request, the ID can be passed both in the URL and in the request parameters. On your side, you can actually use only one of the methods for receiving the ID.
2. Only one of the payment details fields (number_card, phone_number, number_score, iban_number) is provided depending on the payment method.
Request Example¶
{
"order_id": "123456789",
"standart_sign": "p6o5n4m3l2k1j0i9h8g7f6e5d4c3b2a1",
"type": "pay_out",
"status": "successful",
"fiat_amount": "5000.00",
"usdt_amount": "49.8765",
"merchant_spent_usdt": "49.2500",
"fiat_currency": "rub",
"exchange_rate": "100.2472",
"payment_method": "card",
"created_at": "2024-02-15T09:30:45Z",
"updated_at": "2024-02-15T09:45:12Z",
"number_card": "4276345439581234",
"phone_number": null,
"number_score": null,
"iban_number": null,
"full_name": "Petrov Petr Petrovich",
"bank_name": "Tinkoff"
}
Payout Request Status Inquiry¶
Request¶
GET example.com/api/merchant/"merchant"/status_pay_out/"pay_out_id"/
Headers¶
| Name | Value |
|---|---|
| Content-Type* | application/json |
| X-Api-Key* | X-Api-Key |
Response Parameters¶
| Name | Type | Format | Description |
|---|---|---|---|
| order_id* | string max: 255 |
Request ID in your system | |
| type* | string | enum (pay_out) | Operation type |
| status* | string | enum (expectation, successful, rejected_timeout, rejected_merchant, rejected_gate) | Request status (expectation - awaiting payout, successful - success, rejected_timeout - rejected by timeout, rejected_merchant - rejected by merchant, rejected_gate - rejected by platform support) |
| fiat_amount* | string | Request amount in fiat currency | |
| usdt_amount* | string | Request amount in USDT | |
| merchant_spent_usdt* | string | USDT amount spent by merchant | |
| fiat_currency* | string | Fiat currency code | |
| exchange_rate* | string | Exchange rate | |
| payment_method* | string | enum (card, sbp, score, iban) | Payout type (card, SBP, bank account, IBAN) |
| created_at* | string | ISO 8601 | Request creation date and time |
| updated_at* | string | ISO 8601 | Request update date and time |
| number_card | string | Card number (only provided when payment_method = card) | |
| phone_number | string | Phone number (only provided when payment_method = sbp) | |
| number_score | string | Bank account number (only provided when payment_method = score) | |
| iban_number | string | IBAN (only provided when payment_method = iban) | |
| full_name* | string | Recipient full name | |
| bank_name* | string | Recipient bank name | |
| cheque_urls | array | Array of receipt URLs (if available) |
Note:
1. Only one of the payment details fields (number_card, phone_number, number_score, iban_number) is provided depending on the payment method.
2. The cheque_urls field is only provided if receipts are available for the request.
Important! Do not use polling to monitor request status. The platform server has rate limits on status requests. Use callback functionality to monitor request status. If you need to use polling, please coordinate this with the platform's technical support.
Response Example¶
{
"ok": true,
"order_id": "123456789",
"type": "pay_out",
"status": "successful",
"fiat_amount": "5000.00",
"usdt_amount": "49.8765",
"merchant_spent_usdt": "49.2500",
"fiat_currency": "rub",
"exchange_rate": "100.2472",
"payment_method": "card",
"created_at": "2024-02-15T09:30:45Z",
"updated_at": "2024-02-15T09:45:12Z",
"number_card": "4276345439581234",
"phone_number": null,
"number_score": null,
"iban_number": null,
"full_name": "Petrov Petr Petrovich",
"bank_name": "Tinkoff",
"cheque_urls": [
"https://yourwebsite.com/cheque1.pdf",
"https://yourwebsite.com/cheque2.pdf",
"https://yourwebsite.com/cheque3.pdf"
]
}
Payout Request Cancellation by Merchant¶
Request¶
POST example.com/api/merchant/"merchant"/rejected_pay_out/
Headers¶
| Name | Value |
|---|---|
| Content-Type* | application/json |
Request Parameters¶
| Name | Type | Format | Description |
|---|---|---|---|
| order_id* | string max: 255 |
Request ID in your system | |
| standart_sign* | string | Standard signature |