Download OpenAPI specification:
Token-based authentication is used for endpoints that require authorization.
The server provides a bearer token, which must be included in the Authorization HTTP header:
Authorization: Bearer <YOUR_TOKEN>
The token is obtained after logging in and remains valid until logging out.
Endpoints requiring authorization are intended for backend-to-backend integration only.
Endpoints under the public section do not require authorization and are intended for frontend-to-backend communication.
To receive cryptocurrency payments, a temporary address is generated for each invoice in the selected blockchain network. This address is used exclusively to identify the purpose of incoming payments.
Note: In some blockchain networks (e.g., TON, or when interacting with certain centralized exchanges), a unique address is not generated per invoice. Instead, a shared address is used along with a unique identifier such as a memo, tag, or destination ID to distinguish between payments. Make sure to always display the memo/tag to the user when required, and ensure they include it in the transaction. Failure to do so may result in an untracked or lost payment.
Invoices can be created in either one-step or multi-step mode, depending on your business logic:
Users can only pay invoices using cryptocurrencies that are allowed in the merchant’s settings, which are a subset of all supported tokens and networks.
Once the currency and network are selected, the payable amount is calculated using current exchange rates and fixed for a limited time (see expires_at).
The customer must send funds to the generated pay_address.
[2 - Partially Paid] and awaits additional transactions.⚠️ Important: If the user sends an unsupported token or uses the wrong blockchain network, the transaction will not be recognized as a payment! In some cases, such funds might be forwarded to the merchant’s wallet as unlinked external deposits. In other cases, the transaction may be completely ignored.
💡 Memo/Tag Requirement: For some networks, the
pay_addressmust be accompanied by a memo, tag, or destination ID. This additional identifier is essential to correctly associate the transaction with the invoice. Always ensure the user is instructed to include the memo/tag where applicable.
If the invoice is not paid within a certain time, it will be marked [98 - Cancelled].
Any funds received after cancellation are likely to be lost.
The final status of the invoice is [99 - Successful]. It informs that the funds have been successfully transferred to merchant's wallet.
[0 New] -> [1 Awaiting payment] -> [2 Partially Paid] -> [3 Paid]
| |
+------ expired --------+--> [98 Cancelled]
[3 Paid] -- AML OFF --> [21 Transfer in progress] ----------------> [99 Successful]
[3 Paid] -- AML ON --> [11 AML in progress] -> [12 AML finished]
low risk -> [21 Transfer in progress] -> [99 Successful]
high risk -> [13 Awaiting AML decision]
approve -> [21 Transfer in progress] -> [99 Successful]
refund -> [31 Refund in progress] -> [39 Refunded] / [38 Partially Refunded]
Status [3 - Paid] means funds reached the temporary address but the invoice is not yet settled — it still has to be moved to your merchant wallet.
[3 - Paid] is reliable: there is no AML hold and no refund branch in the normal flow, so the invoice is guaranteed to proceed to [99 - Successful]. You may safely accept the order on [3 - Paid] to speed up fulfilment, without waiting for [99 - Successful].[3 - Paid]: the invoice may go through an AML check and can stop at [13 - Awaiting AML decision] or be refunded. Use [21 - Transfer in progress] as the early "accepted" signal instead — it is only reached after the AML check has passed (or you approved a held invoice), so the payment will not be refunded by AML from this point. [99 - Successful] remains the final settlement confirmation, and you may still handle [13 - Awaiting AML decision] explicitly.⚠️ Withdrawals must be made to addresses on the same network as the source wallet. Sending to incorrect or non-existent addresses may result in permanent loss of funds.
💡 Security Tip: Do not store large balances on merchant wallets. Withdraw funds regularly to secure external wallets.
Withdrawals can be executed in:
skipConfirmation flag)All withdrawal requests must be signed using the merchant's secret key.
The following HTTP headers are required:
| Header | Required | Description |
|---|---|---|
X-Timestamp |
✅ | Unix timestamp in milliseconds (UTC) |
X-Merchant-Signature |
✅ | HMAC SHA256 signature generated from request parameters |
The server will reject requests if:
| Parameter | Description |
|---|---|
timestamp |
Value from the X-Timestamp header |
amount |
Value of amount |
token |
Value of token |
network |
Blockchain network name |
to_address |
Destination wallet address |
$params = [
'timestamp' => $timestamp,
'amount' => $amount,
'token' => $currency,
'network' => $network,
'to_address' => $to_address,
];
ksort($params);
$query = http_build_query($params, '', '&', PHP_QUERY_RFC3986);
$signature = hash_hmac('sha256', $query, $merchant_secret);
The resulting signature must be sent in the X-Merchant-Signature header.
X-Timestamp: 1712990000000
X-Merchant-Signature: 3b2a1b7d9a8bdf12...
Payload:
{
"amount": "100.00",
"token": "USDT",
"network": "TRON",
"to_address": "TXYZabc..."
}
String to sign:
amount=100.00&network=TRON×tamp=1712990000000&to_address=TXYZabc...&token=USDT
A service fee is charged when funds are transferred from the temporary address to the merchant wallet. The amount depends on your subscription plan and is charged in the same token used for payment.
Fees can be accumulated in the merchant wallet (frozen_amount) and periodically transferred to the service when economically reasonable.
BNF is charged in the main coin of the blockchain (e.g., ETH for Ethereum).
It applies to:
Normally, BNF is deducted from the source wallet. If the source wallet lacks the required main coin, the service pays the fee and deducts its equivalent in the token used.
If a webhook_url is set in the merchant's settings, the service will notify your server about updates to invoice and withdrawal statuses.
Each IPN includes a Sig header, which is an HMAC SHA256 signature of the payload, signed with the merchant's secret key.
To verify the signature, you need to:
Sig header from the request.key=value pairs, separated by &.example (PHP)
// $payload - array of parameters from ipn
// $signFromSigHeader - server signature value from Sig header
// $secret - merchant's secret key
// Sorting the array by keys
ksort($payload);
// Combining key=value pairs with an ampersand as a separator
$sign_params_query = http_build_query($payload);
$calculatedSign = hash_hmac('sha256', $sign_params_query, $secret);
return $signFromSigHeader === $calculatedSign;
An invoice notification is sent whenever the invoice status changes and whenever paid_amount changes
(so top-ups to a still Partially Paid invoice are delivered as separate notifications).
| Field | Type | Description |
|---|---|---|
type |
string | Always invoice. |
uuid |
string | Invoice UUID. |
merchant_uuid |
string | Merchant UUID. |
status |
integer | Invoice status (see below). |
pay_amount |
string | Amount to pay, in the payment token. Decimal string. |
paid_amount |
string | Amount received so far, in the payment token. Decimal string. |
pay_token |
string | Payment token (e.g. USDT). |
pay_network |
string | Payment network (e.g. TRON). |
order_num |
string | Merchant order number. Empty string if not set. |
final_amount |
string | Amount actually received, expressed in the invoice currency, rounded to that currency precision. |
All amount fields are decimal strings, status is an integer. Optional string fields (e.g. order_num)
are sent as an empty string "" when absent — the payload never contains null.
status is one of the following values (other internal statuses are not delivered):
2 Partially Paid, 3 Paid, 13 Awaiting AML decision, 21 Transfer in progress,
38 Partially Refunded, 39 Refunded, 97 Error, 98 Cancelled, 99 Successful.
Note on 21 Transfer in progress — the payment is confirmed and (if AML is enabled) has
passed the AML check; the funds are being swept to your wallet. It is not a terminal status:
a successful sweep is followed by 99 Successful. Use it as an early "payment accepted" signal,
but treat 99 as the final confirmation.
Triggered when the status of an invoice changes.
The notification is sent to the webhook_url provided during invoice creation.
If not specified explicitly, the default webhook URL from the merchant settings is used.
| merchant_uuid required | string merchant UUID |
| uuid required | string invoice UUID |
| type required | string notification type = 'invoice' |
| status required | integer invoice status |
| pay_amount | string Amount to pay, in the payment token (decimal string) |
| paid_amount | string Amount received so far, in the payment token (decimal string) |
| pay_token | string Payment token (e.g. USDT) |
| pay_network | string Payment network (e.g. TRON) |
| order_num | string Merchant order number (empty string if not set) |
| final_amount | string Amount actually received, expressed in the invoice currency (decimal string) |
{- "merchant_uuid": "1e8ae8ce-9e21-40ad-8182-9611f66983c1",
- "uuid": "2e8ae8ce-9e21-40ad-8182-9611f66983c1",
- "type": "invoice",
- "status": 99,
- "pay_amount": "100.000",
- "paid_amount": "100.000",
- "pay_token": "USDT",
- "pay_network": "TRON",
- "order_num": "ORDER-1100",
- "final_amount": "100.00"
}Triggered when the status of a withdrawal or refund changes.
| merchant_uuid required | string merchant UUID |
| uuid required | string withdrawal UUID |
| type required | string notification type = 'payout' |
| payout_type | string Enum: "wtd" "rfnd" "feewtd" Payout type: wtd (withdrawal), rfnd (refund), feewtd (service fee) |
| status required | integer Withdrawal/refund status:
|
| amount | string Amount (decimal string) |
| token | string Token |
| network | string Network |
| fee | string Fee (decimal string) |
{- "merchant_uuid": "1e8ae8ce-9e21-40ad-8182-9611f66983c1",
- "uuid": "2e8ae8ce-9e21-40ad-8182-9611f66983c1",
- "type": "payout",
- "payout_type": "wtd",
- "status": 9,
- "amount": "0.600000",
- "token": "USDT",
- "network": "BSC",
- "fee": "0.100000"
}Authentication data
| email required | string <email> user email |
| password required | string user password |
{- "email": "user@example.com",
- "password": "string"
}{- "success": true,
- "data": {
- "token": "string"
}
}Merchant object
| title required | string Merchant title |
| website required | string <url> Merchant website |
| success_url | string <uri> success URL |
| failed_url | string fail URL |
| allowed_tokens | Array of integers unique list of allowed tokens ids |
{- "title": "string",
- "website": "string",
- "failed_url": "string",
- "allowed_tokens": [
- 0
]
}{- "success": true,
- "data": {
- "uuid": "string"
}
}{- "success": true,
- "data": [
- {
- "uuid": "string",
- "title": "string",
- "website": "string",
- "success_url": "string",
- "failed_url": "string",
- "status": 0,
- "allowed_tokens": [
- 0
]
}
]
}| uuid required | string <uuid> UUID торговой точки |
| title | string Merchant title |
| website | string <url> website URL |
| success_url | string <uri> success URL |
| failed_url | string fail URL |
| allowed_tokens | Array of integers unique list of allowed tokens |
{- "title": "string",
- "website": "string",
- "failed_url": "string",
- "allowed_tokens": [
- 0
]
}{- "success": true,
- "data": [
- {
- "uuid": "string",
- "title": "string",
- "website": "string",
- "success_url": "string",
- "failed_url": "string",
- "status": 0,
- "allowed_tokens": [
- 0
]
}
]
}| uuid required | string <uuid> UUID of merchant |
| page | integer page number |
| per_page | integer <int32> [ 1 .. 100 ] number of items per page |
| include_archived | boolean Default: false When |
{- "success": true,
- "data": {
- "data": [
- {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "from": 0,
- "to": 0,
- "total": 0,
- "last_page": 0
}
}
}| uuid required | string <uuid> UUID of merchant |
Invoice object
| amount required | number <double> invoice amount |
| currency required | string invoice currency |
| network | string Default: "FIAT" invoice initial network |
| order_num required | string unique client order number |
| pay_token | string token user chose to pay in |
| pay_network | string network user chose to pay in |
| webhook_url | string <uri> Optional webhook URL for this request. If provided, overrides the default webhook set in the merchant's settings. For requests sent via the public API (without authentication), the webhook domain must match the merchant's website domain or one of its subdomains. |
Array of objects a list of products |
{- "amount": 0.1,
- "currency": "string",
- "network": "FIAT",
- "order_num": "string",
- "pay_token": "string",
- "pay_network": "string",
- "products": [
- {
- "name": "string",
- "qty": 1,
- "price": 0.1
}
]
}{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}| uuid required | string <uuid> UUID of merchant |
{- "success": true,
- "data": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "network": "string",
- "address": "string",
- "aml_action": 0,
- "aml_threshold": 100,
- "balances": [
- {
- "token": "string",
- "frozen_amount": 0.1,
- "amount": 0.1
}
]
}
]
}| uuid required | string <uuid> UUID of merchant |
| page | integer page number |
| per_page | integer <int32> [ 1 .. 100 ] number of items per page |
{- "success": true,
- "data": {
- "data": [
- {
- "initial_amount": 0.1,
- "initial_token": "string",
- "initial_network": "string",
- "amount": 0.1,
- "token": "string",
- "network": "string",
- "type": "string",
- "status": 0,
- "comment": "string"
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "from": 0,
- "to": 0,
- "total": 0,
- "last_page": 0
}
}
}| uuid required | string <uuid> UUID of merchant |
| page | integer page number |
| per_page | integer <int32> [ 1 .. 100 ] number of items per page |
{- "success": true,
- "data": {
- "data": {
- "uuid": "string",
- "attempt": 0,
- "webhook_url": "string",
- "status_code": 0,
- "created_at": "2019-08-24"
}, - "meta": {
- "current_page": 0,
- "per_page": 0,
- "from": 0,
- "to": 0,
- "total": 0,
- "last_page": 0
}
}
}| uuid required | string <uuid> UUID of merchant |
| page | integer page number |
| per_page | integer <int32> [ 1 .. 100 ] number of items per page |
| include_archived | boolean Default: false When |
{- "success": true,
- "data": {
- "data": [
- {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "from": 0,
- "to": 0,
- "total": 0,
- "last_page": 0
}
}
}| uuid required | string <uuid> UUID of merchant |
Invoice object
| amount required | number <double> invoice amount |
| currency required | string invoice currency |
| network | string Default: "FIAT" invoice initial network |
| order_num required | string unique client order number |
| pay_token | string token user chose to pay in |
| pay_network | string network user chose to pay in |
| webhook_url | string <uri> Optional webhook URL for this request. If provided, overrides the default webhook set in the merchant's settings. For requests sent via the public API (without authentication), the webhook domain must match the merchant's website domain or one of its subdomains. |
Array of objects a list of products |
{- "amount": 0.1,
- "currency": "string",
- "network": "FIAT",
- "order_num": "string",
- "pay_token": "string",
- "pay_network": "string",
- "products": [
- {
- "name": "string",
- "qty": 1,
- "price": 0.1
}
]
}{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}Returns detailed information about an invoice, including its payment status, original and paid amounts, associated blockchain network and token, expiration date, and memo/tag if required. Use this endpoint to display invoice status to the user or to track its current state in the backend.
| uuid required | string <uuid> invoice UUID |
{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}This endpoint allows modifying the invoice before payment has started.
It is only available for invoices in status 0 - New or 1 - Awaiting payment.
| uuid required | string <uuid> invoice UUID |
Invoice object
| amount required | number <double> invoice amount |
| currency required | string invoice currency |
| network | string Default: "FIAT" invoice initial network |
| order_num required | string unique client order number |
| pay_token | string token user chose to pay in |
| pay_network | string network user chose to pay in |
| webhook_url | string <uri> Optional webhook URL for this request. If provided, overrides the default webhook set in the merchant's settings. For requests sent via the public API (without authentication), the webhook domain must match the merchant's website domain or one of its subdomains. |
Array of objects a list of products |
{- "amount": 0.1,
- "currency": "string",
- "network": "FIAT",
- "order_num": "string",
- "pay_token": "string",
- "pay_network": "string",
- "products": [
- {
- "name": "string",
- "qty": 1,
- "price": 0.1
}
]
}{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}Deletes an invoice that is no longer needed. Only applicable to invoices that have not received any payments. Once funds are received, the invoice cannot be deleted and must follow the refund process if needed.
| uuid required | string <uuid> invoice UUID |
{- "success": true
}Sets the currency and network the user selected to pay in. Based on this, the amount to be paid is calculated using the current exchange rate.
| uuid required | string <uuid> invoice UUID |
| token required | string Token, that user chose to pay in |
| network required | string Network, that user chose to pay in |
{- "success": true,
- "data": [
- {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
]
}| uuid required | string <uuid> invoice UUID |
{- "success": true,
- "data": [
- {
- "address_from": "string",
- "address_to": "string",
- "amount": 0.1,
- "network": "string",
- "token": "string",
- "txid": "string",
- "confirmed": true,
- "confirmations": 0,
- "fee": 0.1
}
]
}| uuid required | string <uuid> Invoice UUID |
{- "success": true,
- "data": {
- "address": "string",
- "network": "string",
- "subject_type": "transaction",
- "identifier": "string",
- "riskscore": 0,
- "check_status": "completed",
- "data": { }
}
}Approves an invoice that is in AML waiting status and continues with transferring funds to merchant wallet. Only works for invoices in status 13 (Awaiting AML decision).
| uuid required | string <uuid> Invoice UUID |
{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}Creates a refund for the invoice.
| uuid required | string <uuid> Invoice UUID |
| refund_address required | string REQUIRED. Address where funds will be refunded. |
| amount | number <double> The amount to refund. If not specified, the full amount will be refunded |
| token | string Token to refund |
| network | string Network to refund |
{- "refund_address": "TJRyWwFs9wTFGZg3JbrVriFbNfCug5tDeC",
- "amount": 0.1,
- "token": "string",
- "network": "string"
}{- "success": true,
- "data": [
- {
- "uuid": "string",
- "from_address": "string",
- "to_address": "string",
- "token": "string",
- "network": "string",
- "amount": 0.1,
- "fee": 0.1,
- "status": 0
}
]
}| uuid required | string <uuid> UUID of merchant |
{- "success": true,
- "data": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "network": "string",
- "address": "string",
- "aml_action": 0,
- "aml_threshold": 100,
- "balances": [
- {
- "token": "string",
- "frozen_amount": 0.1,
- "amount": 0.1
}
]
}
]
}| uuid required | string <uuid> wallet UUID |
| aml_action | string Default: "none" Enum: "none" "wait" |
| aml_threshold | integer [ 0 .. 100 ] |
{- "aml_action": "none",
- "aml_threshold": 100
}{- "success": true,
- "data": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "network": "string",
- "address": "string",
- "aml_action": 0,
- "aml_threshold": 100,
- "balances": [
- {
- "token": "string",
- "frozen_amount": 0.1,
- "amount": 0.1
}
]
}
}| uuid required | string <uuid> UUID of merchant |
{- "success": true,
- "data": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "network": "string",
- "address": "string",
- "aml_action": 0,
- "aml_threshold": 100,
- "balances": [
- {
- "token": "string",
- "frozen_amount": 0.1,
- "amount": 0.1
}
]
}
]
}| uuid required | string <uuid> UUID of merchant |
| page | integer page number |
| per_page | integer <int32> [ 1 .. 100 ] number of items per page |
{- "success": true,
- "data": {
- "data": [
- {
- "initial_amount": 0.1,
- "initial_token": "string",
- "initial_network": "string",
- "amount": 0.1,
- "token": "string",
- "network": "string",
- "type": "string",
- "status": 0,
- "comment": "string"
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "from": 0,
- "to": 0,
- "total": 0,
- "last_page": 0
}
}
}| uuid required | string <uuid> UUID of merchant |
| page | integer page number |
| per_page | integer <int32> [ 1 .. 100 ] number of items per page |
{- "success": true,
- "data": {
- "data": {
- "uuid": "string",
- "attempt": 0,
- "webhook_url": "string",
- "status_code": 0,
- "created_at": "2019-08-24"
}, - "meta": {
- "current_page": 0,
- "per_page": 0,
- "from": 0,
- "to": 0,
- "total": 0,
- "last_page": 0
}
}
}| uuid required | string <uuid> invoice UUID |
{- "success": true,
- "data": [
- {
- "address_from": "string",
- "address_to": "string",
- "amount": 0.1,
- "network": "string",
- "token": "string",
- "txid": "string",
- "confirmed": true,
- "confirmations": 0,
- "fee": 0.1
}
]
}| uuid required | string <uuid> Invoice UUID |
{- "success": true,
- "data": {
- "address": "string",
- "network": "string",
- "subject_type": "transaction",
- "identifier": "string",
- "riskscore": 0,
- "check_status": "completed",
- "data": { }
}
}Approves an invoice that is in AML waiting status and continues with transferring funds to merchant wallet. Only works for invoices in status 13 (Awaiting AML decision).
| uuid required | string <uuid> Invoice UUID |
{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}Creates a refund for the invoice.
| uuid required | string <uuid> Invoice UUID |
| refund_address required | string REQUIRED. Address where funds will be refunded. |
| amount | number <double> The amount to refund. If not specified, the full amount will be refunded |
| token | string Token to refund |
| network | string Network to refund |
{- "refund_address": "TJRyWwFs9wTFGZg3JbrVriFbNfCug5tDeC",
- "amount": 0.1,
- "token": "string",
- "network": "string"
}{- "success": true,
- "data": [
- {
- "uuid": "string",
- "from_address": "string",
- "to_address": "string",
- "token": "string",
- "network": "string",
- "amount": 0.1,
- "fee": 0.1,
- "status": 0
}
]
}| uuid required | string <uuid> Refund UUID |
{- "success": true,
- "data": [
- {
- "uuid": "string",
- "from_address": "string",
- "to_address": "string",
- "token": "string",
- "network": "string",
- "amount": 0.1,
- "fee": 0.1,
- "status": 0
}
]
}Initiates a withdrawal of funds from the merchant’s wallet to an external wallet address.
🔐 To protect against spoofing and replay attacks, each request must be signed using the
X-Merchant-Signatureheader and include aX-Timestamp.
⚠️ Make sure the target address belongs to the same blockchain network as the source wallet. Sending funds to a wrong or incompatible network can result in permanent loss.
💡 If a memo/tag is required for the target address (e.g., for centralized exchanges or specific networks like XRP or TON), it must be provided in the
memofield.
| merchant_uuid required | string <uuid> merchant UUID |
| X-Merchant-Signature required | string Example: 4fa2b3c9e5d1a2... HMAC SHA256 request body signature |
| X-Timestamp required | string Example: 1712963910000 Unix timestamp in milliseconds. Used to protect against replay attacks. The server will reject the request if the difference between this timestamp and the current server time exceeds the allowed threshold (e.g., 30 seconds). |
| amount required | number <float> Amount in |
| token required | string |
| network required | string |
| to_address required | string |
| wallet_uuid | string <uuid> Optional source wallet UUID. When omitted, funds are
withdrawn from the merchant's current |
| webhook_url | string Optional webhook URL for this request. If provided, overrides the default webhook set in the merchant's settings. |
| external_id | string external identifier. If specified should be unique |
| memo | string tag / memo, if the deposit platform requires you to fill it (e.g. transfer to CEX in TON blockchain) |
| notes | string comment for internal usage |
| skip_confirmation | number Enum: 0 1 Skip confirmation step. If not specified or 0, then pre-flight request will be created and you should send confirmation request |
{- "amount": 0.1,
- "token": "string",
- "network": "string",
- "to_address": "string",
- "wallet_uuid": "ca93318c-b493-43b8-bb30-8d2bf6f4b3d1",
- "webhook_url": "string",
- "external_id": "string",
- "memo": "string",
- "notes": "string",
- "skip_confirmation": 0
}{- "success": true,
- "data": {
- "uuid": "string",
- "from_address": "string",
- "to_address": "string",
- "token": "string",
- "network": "string",
- "amount": 0.1,
- "fee": 0.1,
- "status": 0
}
}Confirms a previously created withdrawal request.
This endpoint is used in multi-step withdrawal mode, when the initial request was created with skip_confirmation = 0.
Upon confirmation, the system will initiate the blockchain transaction.
| uuid required | string <uuid> withdraw UUID |
{- "success": true,
- "data": [
- {
- "uuid": "string",
- "from_address": "string",
- "to_address": "string",
- "token": "string",
- "network": "string",
- "amount": 0.1,
- "fee": 0.1,
- "status": 0
}
]
}| uuid required | string <uuid> withdraw UUID |
{- "success": true,
- "data": {
- "uuid": "string",
- "from_address": "string",
- "to_address": "string",
- "token": "string",
- "network": "string",
- "amount": 0.1,
- "fee": 0.1,
- "status": 0
}
}{- "success": true,
- "data": [
- {
- "name": "string",
- "description": "string",
- "address_regex": "string",
- "min_confirmations": 0,
- "is_fiat": true,
- "aml_enabled": true,
- "tokens": [
- {
- "id": 0,
- "name": "string",
- "title": "string",
- "active": true,
- "is_main": true,
- "precision": 0,
- "min_amount": 0.1,
- "logo": "string"
}
]
}
]
}Returns general merchant details (such as name, website, and payment URLs) that can be safely exposed to end users.
Intended for public use on payment pages or in merchant directories.
| uuid required | string <uuid> merchant UUID |
{- "success": true,
- "data": {
- "uuid": "string",
- "title": "string",
- "website": "string",
- "success_url": "string",
- "failed_url": "string",
- "status": 0,
- "allowed_tokens": [
- 0
]
}
}| uuid required | string <uuid> invoice UUID |
{- "success": true,
- "data": {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
}Specifies which token and network the user has selected to pay the invoice with.
The system will calculate the final payable amount and update the invoice accordingly.
| uuid required | string <uuid> invoice UUID |
| token required | string Token, that user chose to pay in |
| network required | string Network, that user chose to pay in |
{- "success": true,
- "data": [
- {
- "uuid": "string",
- "initial_amount": 0.1,
- "initial_currency": "string",
- "initial_network": "string",
- "final_amount": 0.1,
- "status": 0,
- "pay_amount": 0.1,
- "pay_token": "string",
- "pay_network": "string",
- "memo": "string",
- "pay_address": "string",
- "paid_amount": 0.1,
- "rate": 0.1,
- "payload": { },
- "expires_at": "string"
}
]
}