MisarMisar Docs
MisarMailMisarBlogMisarReachMisarPostMisarDevMisarCoderMisarSEOMisar PlatformMisar SSO
Universal Wallet

List Withdrawals

GET /io/wallet/withdrawals — paginated cash-out history for a wallet, cursor-paginated by created_at.

Returns the caller's cash-out history, newest first. Same cursor-pagination shape as GET /io/wallet/transactions.

GET https://api.misar.io/io/wallet/withdrawals

Authentication

Either mode works:

SSO bearer (own wallet)
Authorization: Bearer <sso_access_token>
Service key (any wallet)
x-wallet-service-key: <WALLET_SERVICE_KEY>

With a service key you must also pass ?user_id=<uuid>. With an SSO bearer the user id is inferred and any user_id you pass is ignored.

GET/io/wallet/withdrawals

Query parameters

user_idstringquery

Required with a service key; ignored with an SSO bearer. Must be a valid UUID.

limitnumberquerydefault: 20

Rows per page. Clamped to a maximum of 100. Non-numeric or non-positive values fall back to 20.

cursorstringquery

The created_at timestamp of the last row from the previous page. Rows strictly older than the cursor are returned.

Response fields

itemsWithdrawalRequest[]

Withdrawal rows ordered by created_at descending.

nextCursorstring | null

Pass back as cursor to fetch the next page. null when the last page has been reached.

WithdrawalRequest fields

idstring

Withdrawal request id.

amount_creditsnumber

Credits debited from the wallet.

amount_centsnumber

Payout amount in cents (1 credit = $1).

statusstring

Lifecycle state of the withdrawal.

stripe_transfer_idstring | null

Stripe tr_… id for the transfer into the connected account.

stripe_payout_idstring | null

Stripe po_… id for the payout to the user's bank.

failure_reasonstring | null

Populated when the transfer or payout failed.

created_atstring

ISO-8601 creation time. Also the pagination cursor.

completed_atstring | null

ISO-8601 completion time, once the payout settles.

Request
curl "https://api.misar.io/io/wallet/withdrawals?limit=20" \
  -H "Authorization: Bearer $SSO_ACCESS_TOKEN"
Request (service key)
curl "https://api.misar.io/io/wallet/withdrawals?user_id=3f1a2b4c-5d6e-4f70-8a91-b2c3d4e5f607&limit=50" \
  -H "x-wallet-service-key: $WALLET_SERVICE_KEY"
200 — OK
{
  "items": [
    {
      "id": "9c0f1a2b-3d4e-4f50-9a61-b2c3d4e5f607",
      "amount_credits": 50,
      "amount_cents": 5000,
      "status": "completed",
      "stripe_transfer_id": "tr_1QxAbC",
      "stripe_payout_id": "po_1QxAbD",
      "failure_reason": null,
      "created_at": "2026-07-28T09:12:44.118Z",
      "completed_at": "2026-07-30T04:02:10.006Z"
    }
  ],
  "nextCursor": "2026-07-28T09:12:44.118Z"
}

Status codes

CodeMeaning
200Page returned.
400user_id is not a valid UUID.
401Neither a valid SSO bearer nor a valid x-wallet-service-key was supplied.
429Wallet read rate limit exceeded. Includes a Retry-After header.
500The withdrawal history could not be read.

Rate limit

200 read ops per user per 60 s, shared with the other wallet read endpoints. Over the limit returns 429 with a Retry-After header.