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_idstringrequired
    Your app ID (UUID), shown on the app's Developer tab.

Query parameters

  • statusstring
    PENDING, PROCESSING, SUCCESS or FAILED. All statuses when omitted.
  • referencestring
    Only the payout with this reference.
  • orderingstring
    created_at (oldest first) or -created_at (newest first, the default).

    Default: -created_at

  • pageinteger
    Page number. Default 1.
  • page_sizeinteger
    Results 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_idstringrequired
    Your app ID (UUID), shown on the app's Developer tab.
  • withdrawal_idstring (UUID)required
    Payout 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

  • PENDINGstatus
    Accepted, waiting to be sent on-chain.
  • PROCESSINGstatus
    Sent, waiting for block confirmation.
  • SUCCESSstatus
    Paid.
  • FAILEDstatus
    Failed — 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 · string
    Asset id, symbol and network name.
  • amountstring
    Amount paid, in asset units.
  • to_addressstring
    Destination address.
  • to_user_idstring
    Customer user_id recorded with the payout.
  • statusstring
    Payout status (see above).
  • is_external_payoutboolean
    true for an on-chain payout, false for internal settlement.
  • referencestring | null
    The reference you sent (null if none).
  • tx_hashstring
    The on-chain signature, or an internal: reference for internal settlement.
  • feestring
    Fee taken — the network fee on-chain, or your app's internal transfer fee.
  • error_messagestring | null
    Why the payout failed (status FAILED).
  • created_atstring (ISO 8601)
    When the payout was requested.
  • processed_atstring | null
    When it finished — at confirmation on-chain, immediately for internal settlement.