Withdrawals
Withdrawals let you move USDT from your merchant balance to an external blockchain address. Withdrawals go through a review process before being broadcast on-chain.
Withdrawal statuses
| Status | Description |
|---|---|
PENDING | Submitted, awaiting review |
PENDING_REVIEW | Queued for approval |
LEVEL1_APPROVED | First approver approved — awaiting second |
APPROVED | Fully approved — queued for broadcast |
PROCESSING | Being broadcast to the blockchain |
COMPLETED | Confirmed on-chain. tx_hash is set. |
FAILED | Broadcast failed. Funds returned to balance. |
CANCELLED | Cancelled before processing. |
REJECTED | Rejected by reviewer. Funds returned to balance. |
Create a withdrawal
/v1/withdrawalsRequest a USDT withdrawal to an external address
withdrawal.completed webhook event when the transfer is confirmed on-chain.Body parameters
amountstringrequiredWithdrawal amount in USDT as a decimal string. Must be positive and not exceed available balance.
destination_addressstringrequiredDestination blockchain address. Must be valid for the specified network.
networkstringrequiredBlockchain network.One of: TRC20, ERC20
Returns Returns the Withdrawal object. The amount is immediately frozen from your available balance.
Request
curl -X POST https://api.mpchat.com/v1/withdrawals \
-H "Authorization: Bearer mk_live_abc:{ts}:{sig}" \
-H "Content-Type: application/json" \
-d '{
"amount": "500.00",
"destination_address": "TXyz1234567890abcdefghijklmnopqrst",
"network": "TRC20"
}'Response 201
{
"id": "wd_01HQ8ZTXV...",
"merchant_id": "a1b2c3d4-...",
"amount": "500.00",
"fee": "1.00",
"status": "PENDING",
"destination_address": "TXyz1234567890abcdefghijklmnopqrst",
"network": "TRC20",
"tx_hash": null,
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-01-15T10:00:00Z"
}List withdrawals
/v1/withdrawalsReturn a paginated list of withdrawals
Query parameters
limitintegeroptionaldefault: 20Maximum withdrawals to return. Max 100.
offsetintegeroptionaldefault: 0Number of withdrawals to skip.
Returns Returns an object with a withdrawals array and total count.
Request
curl "https://api.mpchat.com/v1/withdrawals?limit=20" \
-H "Authorization: Bearer mk_live_abc:{ts}:{sig}"Response 200
{
"withdrawals": [
{
"id": "wd_01HQ8ZTXV...",
"amount": "500.00",
"fee": "1.00",
"status": "COMPLETED",
"destination_address": "TXyz...",
"network": "TRC20",
"tx_hash": "abc123def456...",
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-01-15T14:30:00Z"
}
],
"total": 5
}Retrieve a withdrawal
/v1/withdrawals/{id}Retrieve a single withdrawal by ID
Path parameters
idstringrequiredThe withdrawal UUID.
Returns Returns the Withdrawal object. Returns 404 if not found.
Request
curl https://api.mpchat.com/v1/withdrawals/wd_01HQ8ZTXV... \
-H "Authorization: Bearer mk_live_abc:{ts}:{sig}"Response 200
{
"id": "wd_01HQ8ZTXV...",
"merchant_id": "a1b2c3d4-...",
"amount": "500.00",
"fee": "1.00",
"status": "COMPLETED",
"destination_address": "TXyz1234567890abcdefghijklmnopqrst",
"network": "TRC20",
"tx_hash": "abc123def456789...",
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-01-15T14:30:00Z"
}Next: Balance & Ledger API