API reference
Payout history
Look up your app's payouts and their status. Filter by status or by your reference.
List payouts
Returns every payout from your pool, newest first.
GET
/api/partner/{app_id}/withdrawals/List payouts.
Path parameters
app_idstringrequiredYour app ID (UUID), shown on the app's Developer tab.
Query parameters
statusstringPENDING, PROCESSING, SUCCESS or FAILED. All statuses when omitted.referencestringOnly the payout with this reference.orderingstringcreated_at (oldest first) or -created_at (newest first, the default).Default:
-created_atpageintegerPage number. Default 1.page_sizeintegerResults per page. Default 50, maximum 100.
Request example
curl "https://api.moallet.com/api/partner/{app_id}/withdrawals/?status=SUCCESS&page=1&page_size=50" \
-H "Authorization: ApiKey {client_id}:{client_secret}"200 OK
{
"success": true,
"data": {
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": "2a1f7a03-9b2b-4fa1-9f77-33f8a09e8a12",
"asset": 2,
"asset_symbol": "USDT",
"network_name": "Solana Mainnet",
"amount": "50.000000000000000000",
"to_address": "5DmYQC3fLxHUpmYbYuRkHFQ2yH4H3kP3VpYWgPMbpnGk",
"to_user_id": "customer-1001",
"status": "SUCCESS",
"tx_hash": "5KtGHnFsLbJxZpQ3mN7vR2wY8dUcAeXhMoPqTiSuVfBk3sRw9nA4bDcEfGhJkLmNpQrStUvWxYz2aB3cD4eF5gH",
"fee": "1.000000000000000000",
"error_message": "",
"created_at": "2026-10-22T10:15:22Z",
"processed_at": "2026-10-22T10:15:41Z",
"reference": "payout-20261022-0001",
"is_external_payout": true
},
{
"id": "8c30fe4e-5d0c-4b88-ab2f-71f20b03f0ef",
"asset": 2,
"asset_symbol": "USDT",
"network_name": "Solana Mainnet",
"amount": "10.000000000000000000",
"to_address": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"to_user_id": "",
"status": "FAILED",
"tx_hash": "",
"fee": "0.000000000000000000",
"error_message": "RECIPIENT_UNAVAILABLE",
"created_at": "2026-10-18T08:40:00Z",
"processed_at": "2026-10-18T08:40:00Z",
"reference": null,
"is_external_payout": false
}
]
},
"error": null
}Get one payout
Look up a single payout by the id from the payout response. The status of an on-chain payout follows block confirmation.
GET
/api/partner/{app_id}/withdrawals/{withdrawal_id}/Get a payout.
Path parameters
app_idstringrequiredYour app ID (UUID), shown on the app's Developer tab.withdrawal_idstring (UUID)requiredPayout id from the payout response.
Request example
curl "https://api.moallet.com/api/partner/{app_id}/withdrawals/{withdrawal_id}/" \
-H "Authorization: ApiKey {client_id}:{client_secret}"Status values
PENDINGstatusAccepted, waiting to be sent on-chain.PROCESSINGstatusSent, waiting for block confirmation.SUCCESSstatusPaid.FAILEDstatusFailed — the amount and fee were returned to the pool.
APPROVED and REJECTED appear only on older records.
Response fields
idstring (UUID)Payout id (UUID).asset · asset_symbol · network_nameinteger · string · stringAsset id, symbol and network name.amountstringAmount paid, in asset units.to_addressstringDestination address.to_user_idstringCustomer user_id recorded with the payout.statusstringPayout status (see above).is_external_payoutbooleantrue for an on-chain payout, false for internal settlement.referencestring | nullThe reference you sent (null if none).tx_hashstringThe on-chain signature, or an internal: reference for internal settlement.feestringFee taken — the network fee on-chain, or your app's internal transfer fee.error_messagestring | nullWhy the payout failed (status FAILED).created_atstring (ISO 8601)When the payout was requested.processed_atstring | nullWhen it finished — at confirmation on-chain, immediately for internal settlement.