Skip to main content
HTTP status: 409 · Title: “Insufficient balance”

When it fires

POST /v1/redemptions was called for an outcome your account holds none of. The API read the account’s on-chain balance of that outcome token and it was zero, so there is nothing to redeem. POST /v1/trades does not return this code. A trade’s USDC balance is checked after the trade is accepted; a trade the account cannot fund ends as failed or rejected, visible on GET /v1/trades/{id} and in trade webhooks.

Why it happens

  • The tokens were already redeemed or moved.
  • The account never held that outcome (for example, the wrong outcomeIndex).
  • The request was made with a key belonging to a different account from the one holding the position.

How to fix

  • Check what the account holds with GET /v1/portfolio/positions, and redeem an outcome that appears there.
  • Confirm the marketId and outcomeIndex.
  • If you expected the position to have been redeemed already, check GET /v1/portfolio.