P2P Withdrawals
Withdraw funds from your Intotes balance by selling USDT for RUB through the P2P exchange. This is the reverse of a P2P deposit: instead of buying USDT from a seller, you sell your USDT to a buyer and receive fiat payment.
How It Worksβ
To withdraw via P2P, you respond to a buy ad -- someone offering to buy USDT with their RUB.
1. Browse Buy Adsβ
GET /api/v1/p2p/ads?type=buy&fiat_currency=RUB&limit=20&offset=0
Optional filters:
amount-- filter ads that accept this amount (in kopecks)payment_method-- filter by the buyer's payment method (e.g.,card,bank_transfer)sort_by--rating,orders_count, orbest_price
Buy ads represent users who want to purchase USDT. They will pay you RUB in exchange for your platform USDT balance.
2. Create an Orderβ
POST /api/v1/p2p/orders
Request body:
{
"ad_id": 22,
"usdt_amount": 300000,
"payment_method": "card",
"payment_details": {
"card_number": "2200 1234 5678 9012"
}
}
| Field | Type | Description |
|---|---|---|
ad_id | integer | The buy ad you are responding to |
usdt_amount | integer | Amount in kopecks (300000 = 3,000 RUB worth of USDT) |
payment_method | string | One of the ad's accepted payment methods |
payment_details | object | Your bank card or payment details where you want to receive RUB |
When the order is created, your USDT is frozen in escrow. This guarantees the buyer that the USDT will be released once they pay.
3. Buyer Pays Youβ
The buyer (ad maker) transfers RUB to your card or bank account using the payment details you provided.
4. Buyer Confirms Paymentβ
The buyer marks the order as paid:
POST /api/v1/p2p/orders/{id}/confirm-paid
Order status moves from pending to paid_by_buyer.
5. You Confirm Receiptβ
After verifying the fiat payment in your bank account, confirm receipt:
POST /api/v1/p2p/orders/{id}/confirm-received
This completes the order. Your escrowed USDT is released to the buyer's platform balance.
Order Lifecycleβ
pending --> paid_by_buyer --> completed
| |
+--> cancelled +--> disputed (call operator)
| Status | Description |
|---|---|
pending | Order created, your USDT frozen. Buyer should send fiat. |
paid_by_buyer | Buyer claims fiat sent. Verify your bank account. |
completed | You confirmed receipt. USDT released to buyer. |
cancelled | Order cancelled. Your USDT unfrozen. |
Updating Payment Detailsβ
If you need to change your payment details after order creation (while still in pending status):
PATCH /api/v1/p2p/orders/{id}
{
"payment_details": {
"card_number": "2200 9876 5432 1000"
}
}
Only the seller (you) can update payment details, and only while the order is in pending status.
Chat and Dispute Resolutionβ
Use the integrated chat to communicate with the buyer:
POST /api/v1/p2p/orders/{id}/messages
{
"message": "I have not received the payment yet, please check."
}
If a dispute arises, call a platform operator:
POST /api/v1/p2p/orders/{id}/call-operator
Cancelling an Orderβ
Cancel an order in pending status to unfreeze your USDT:
POST /api/v1/p2p/orders/{id}/cancel
Ratingβ
After completion, rate the buyer:
POST /api/v1/p2p/orders/{id}/rate
{
"rating": 4
}
Ratings are on a 1-5 star scale and affect the counterparty's reputation on the platform.
Prerequisitesβ
- Minimum deposit requirement -- Cumulative deposits must total at least 1,000 RUB before P2P withdrawals are allowed.
- Wagering requirement -- If you received a cashback bonus, your bet turnover must meet the wagering threshold.
- Sufficient balance -- Your available balance must cover the USDT amount being sold.
- No active withdrawal order -- You cannot have two active P2P withdrawal orders simultaneously.
Error Codesβ
| Code | Description |
|---|---|
AD_NOT_ACTIVE | The ad is no longer active |
OWN_AD | You cannot create an order for your own ad |
MIN_DEPOSIT_REQUIRED | Minimum 1,000 RUB deposit required before P2P withdrawal |
WAGERING_REQUIREMENT_NOT_MET | Wagering requirement not met |
SELLER_INSUFFICIENT_BALANCE | Your balance is insufficient to cover the escrow |
AMOUNT_TOO_LOW | Amount is below the ad's minimum |
AMOUNT_TOO_HIGH | Amount exceeds the ad's maximum |
AMOUNT_EXCEEDS_AVAILABLE | Amount exceeds remaining available on the ad |
INVALID_PAYMENT_METHOD | Selected payment method not accepted by this ad |
ACTIVE_WITHDRAW_ORDER_EXISTS | You already have an active withdrawal order |