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/withdrawalsAuthentication
Either mode works:
Authorization: Bearer <sso_access_token>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.
/io/wallet/withdrawalsQuery parameters
user_idstringqueryRequired with a service key; ignored with an SSO bearer. Must be a valid UUID.
limitnumberquerydefault: 20Rows per page. Clamped to a maximum of 100. Non-numeric or non-positive values fall back to 20.
cursorstringqueryThe 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 | nullPass back as cursor to fetch the next page. null when the last page has been reached.
WithdrawalRequest fields
idstringWithdrawal request id.
amount_creditsnumberCredits debited from the wallet.
amount_centsnumberPayout amount in cents (1 credit = $1).
statusstringLifecycle state of the withdrawal.
stripe_transfer_idstring | nullStripe tr_… id for the transfer into the connected account.
stripe_payout_idstring | nullStripe po_… id for the payout to the user's bank.
failure_reasonstring | nullPopulated when the transfer or payout failed.
created_atstringISO-8601 creation time. Also the pagination cursor.
completed_atstring | nullISO-8601 completion time, once the payout settles.
curl "https://api.misar.io/io/wallet/withdrawals?limit=20" \
-H "Authorization: Bearer $SSO_ACCESS_TOKEN"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"{
"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
| Code | Meaning |
|---|---|
200 | Page returned. |
400 | user_id is not a valid UUID. |
401 | Neither a valid SSO bearer nor a valid x-wallet-service-key was supplied. |
429 | Wallet read rate limit exceeded. Includes a Retry-After header. |
500 | The 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.
Related
- Request a withdrawal —
POST /io/wallet/withdraw - Connect & payout status — onboarding and eligibility